I use a fresh installed Drupal 7.8 with Heartbeat and Rules module. After installing and configuring mongoDB i tried to create Rules.
After typing name, tags and action the errormessage appears:
MongoException: zero-length keys are not allowed, did you use $ with double quotes? in MongoCollection->save() (Zeile 187 von /var/www/virtual/../sites/all/modules/mongodb/mongodb_field_storage/mongodb_field_storage.module).
No Rule is created.
Adding mongo.allow_empty_keys = 1 to my php.ini removes the message, but there is still no rule created. Any new attemp to create one dissolves into a Servererror 500:
mod_fcgid: stderr: PHP Fatal error: Nesting level too deep - recursive dependency? in /var/www/virtual/../sites/all/modules/mongodb/mongodb_field_storage/mongodb_field_storage.module on line 187, referer: http://../admin/config/workflow/rules/reaction/add
| Comment | File | Size | Author |
|---|---|---|---|
| #9 | make_rules_work_with_mongodb-1269954-9.patch | 795 bytes | misc |
| #8 | make_rules_work_with_mongodb-1269954-8.patch | 794 bytes | misc |
Comments
Comment #1
guybrush commentedsubscribe
Comment #2
tom-d commentedsubscribe
Comment #3
ydnar79 commentedAny progress.... I am having the same issue.
Comment #4
ydnar79 commentedHas anyone had any success in figuring out this issue? It appears to be an problem with Rules since it utilizes the Entity API in Drupal 7.
I would imagine that this would be a CRITICAL issue since Rules is such a primary tool for so many sites... And if it is not compatible with the field storage option of the MongoDB module. (Which is a major reason for many to use the module to begin with.) This would render the MongoDB option completely out.
Therefore, I am upgrading this to critical. (Hopefully others agree.)
Comment #5
misc commentedCriticial indeed.
Comment #6
lurkingbeast commentedI also ran into troubles with Rules and MongoDB. I needed to get the site working quickly so I just made a dummy hack
function mongodb_field_storage_field_storage_write($entity_type, $entity, $op, $fields, $entity_write = FALSE) {
if(strpos($entity_type, "rules") === 0) {
return;
}
Please don't make a patch out of this one, this is not how it should be :) My rules are working, although they don't touch any fields which are in mongodb.
Comment #7
roynilanjan commentedWhat should be the best way instead of this hack?
Comment #8
misc commentedSorry lurkingbeast, but I need an patch for this ;-)
Comment #9
misc commentedSorry, on '=' missing.
Comment #11
misc commentedComment #12
misc commentedI know this is not the best solution, but I think we need to be able to use Rules, so this workaround is committed to 7.x-1.x. Hopefully somebody could look into this and have rules using the field storage in mongodb also.
Comment #13
misc commented