(I had earlier reported this as part of Deleted feed aggregator reappeared but decided to report this as a separate bug).
this feed worked fine in 6.26: http://feeds.feedburner.com/uua/Lxnn
however, in 7.14 it causes cron to fail with an error in the log:
PDOException: SQLSTATE[22003]: Numeric value out of range: 1264
Out of range value for column 'timestamp' at row 1: ... [:db_insert_placeholder_5] => -2209143600
I tracked this down to an incorrect pubDate in the 5 oldest entries (actually VERY OLD entries ;-) ): December 29, 1899 9:00 PM
which generates the negative timestamp value in the SQL error.
now, I have contacted the source of the feed and they acknowledge the problem and say that they will fix or remove the items -- but they haven't yet...
in the meanwhile, if this error happens with, say the 1st item in the feed, no items are updated in 7.14 (though as I mentioned earlier, 6.26 didn't have this problem). so I'm wondering whether 7.x might just skip problem items and continue processing remainder of the feed ?
Steve
Comment | File | Size | Author |
---|---|---|---|
#26 | 1695852-26.patch | 6.03 KB | dcam |
#23 | 1695852-23-test-only.patch | 2.73 KB | dcam |
Comments
Comment #1
jday CreditAttribution: jday commentedThe offending feed items must have been deleted/fixed in the url listed above so I can not reproduce the error. Seems like the next step would be for someone with SimpeTest chops to write a test to check for negative timestamp values.
Comment #2
Aron NovakI think even if we care negative timestamps by hand, there will be such situations when saving one item is not successful. This should not prevent the rest of the feed to be saved.
Comment #3
Aron NovakUpdated comment and a bit better (hopefully) wording.
Comment #5
Aron Novak#3: aggregator-processor_faulty_item-1695852-3.patch queued for re-testing.
Comment #6
Aron NovakLet the work continue on this.
I re-rolled the things for the restructured aggregator module, tests to be included.
Comment #7
ParisLiakos CreditAttribution: ParisLiakos commentedComment #18
SpokjeThe
aggregator
module has been removed from Core in10.0.x-dev
and now lives on as a contrib module.Issues in the Core queue about the
aggregator
module, like this one, have been moved to the contrib module queue.Comment #19
larowlanNeeds re-roll for contrib
Comment #20
dcam CreditAttribution: dcam as a volunteer commentedThe originally-reported database exception is still reproduceable in Drupal 10.1.
Comment #21
dcam CreditAttribution: dcam as a volunteer commentedI'm not happy with the current state of testing the importing pipeline. Because there are dependency problems in the pipeline the processor is tested in bits in other places. But although we have a test that ensures that the processor plugin system works correctly, we don't have a test just for the DefaultProcessor plugin's functionality. So I made one. It ought to be expanded to test for everything that the DefaultProcessor does, but for now this patch contains a test for the problem that kicked off this issue. Locally, this patch is failing with the exception shown in the comment above.
Comment #22
dcam CreditAttribution: dcam as a volunteer commentedComment #23
dcam CreditAttribution: dcam as a volunteer commentedI forgot to add the
@group
to the new test class.Comment #25
dcam CreditAttribution: dcam as a volunteer commentedI made some modifications from #6. Instead of wrapping the entire contents of the foreach loop in the try block I only wrapped the item's save() call. And instead of checking broadly for any Exception, I changed it to specifically catch EntityStorageExceptions. Also, I had to implement the logger channel because #6 was written in the D7 era.
Comment #26
dcam CreditAttribution: dcam as a volunteer commentedI updated the new test class' docblock and removed an unneeded use statement.
Comment #29
dcam CreditAttribution: dcam as a volunteer commentedI've been avoiding committing some of these recent patches because I want them to be checked first. But this one is a straightforward bug fix that corrects an uncaught exception. So I didn't mind getting this one in.