On a system upgraded from 4.6.0 RC to 4.6.0 without any problems, if you access the XML feeds you get a :

XML Parsing Error: not well-formed Location: http://<hostname>/node/feed Line Number 17, Column 3: <0></0> --^

The number (here 0) varies, obviously, and it's a numerical only element which is included at the end of the $extra array while building.
A quick hack in node.module, by adding after line 1166


$void = array_pop($extra);

just before the $extra array is merged in

    $extra = array_merge($extra, array(array('key' => 'pubDate', 'va    $extra = array_merge($extra, array(array('key' => 'pubDate', 'value' =>  date('r', $item->changed))));lue' =>  date('r', $item->changed))));

fixes the XML output, but this is quite obviously not a solution.

Can this be a local problem depending on installation issues or is it really code misbehaving?

BTW, apparently you do not notice this problem with RSS readers like Liferea for Gnome. Firefox 1.x (with Sage installed) complains.

CommentFileSizeAuthor
#8 upload_0.diff459 bytesSteven
#6 node_39.patch534 bytesSteve Dondley
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

killes@www.drop.org’s picture

Status: Active » Fixed

fixed in head.

Anonymous’s picture

Anonymous’s picture

Anonymous’s picture

Anonymous’s picture

Status: Fixed » Closed (fixed)
Steve Dondley’s picture

Version: » x.y.z
Status: Closed (fixed) » Needs review
FileSize
534 bytes

Can someone report exactly how this was fixed? I'm reopening with the attached patch and changing to CVS. A word of caution, I'm not sure how this patch might affect other operations that use the node_invoke_nodeapi function. I have this patch in 4.6.3 with no apparent adverse affects.

resmini’s picture

I'm a bit skeptical about those previous fixes, since I had the bug show up again as soon as I did I clean install of 4.6.3.
Before applying my silly-willy solution above I tried your patch and I can confirm it works. So far, in normal circumstances and three live sites, no problems reported.

Steven’s picture

FileSize
459 bytes

Isn't this just an issue of making sure that there are no nodeapi('rss item') hooks returning strings? They should either return null, or return an array (empty or otherwise).

Upload.module contained such a naughty hook, here's a patch which changes it.

markstos’s picture

Some further insight about this: I found I still had the issue after upgrading after 4.6.5. What fixed it for me was clearning the case. From my postgresql shell prompt I ran:

# delete from cache ;

This indicates to me that the problem had somehow been fixed earlier, but the broken version was still being served from the cache.

killes@www.drop.org’s picture

Status: Needs review » Reviewed & tested by the community

The patch should be applied for consistency.

Dries’s picture

Status: Reviewed & tested by the community » Fixed

Committed to HEAD. Thanks.

Dries’s picture

Status: Fixed » Closed (fixed)