The feed_item_hash column can only be 32 characters long. If you set your "update_non_existent" config to unpublish the entity, the Clean function in EntityProcessorBase tries to insert the value of the unpublish action on your entity, which might look like this: entity:unpublish_action:availability which is longer than 32 characters, and then you get a php fatal: String data, right truncated: 1406 Data too long for column 'feeds_item_hash'.
The solution is to substr the string at 32 long, as its not actually a hash that needs to go in for these items being cleaned. Patch coming.
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | 3185907-4.truncate-hash.patch | 709 bytes | jrb |
| #2 | 3185907-truncate_hash.patch | 719 bytes | ransomweaver |
Issue fork feeds-3185907
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
ransomweaver commentedpatch attached
Comment #3
mandus.cz commentedLooks like it works. Thanks
Comment #4
jrbThis is the patch in #2 re-rolled for beta3.
Comment #5
xperd commentedWorks. Better than PHP fatal error anyway.
Comment #9
megachrizI think that the type of fix is good enough. What I added in the MR is that in
EntityProcessorBase::initCleanList()the chosen action is also truncated to 32 characters for filtering out already cleaned items. Else, the clean action can get applied on the same item again and again.Comment #11
megachrizI merged the code!