If a node's URL alias changes, any pre-existing links to the node become broken. Here's a use case using two pages:
* page 1 (node/20) is created with a URL alias of /test
* page 2 (node/21) is created, and includes a link [node:20]

At this point, page 2 includes a link to page 1 using the URL /test. If page 1 is updated and its URL alias changed to /test2, the link on page 2 is broken, since it continues to use the URL /test2.

I think the problem is that the filter cache isn't getting cleared correctly in the link_node_nodeapi function. The code currently calls cache_clear_all(null, 'cache_filter'), which only clears entries that are currently allowed to expire. This should probably call cache_clear_all('*', 'cache_filter', TRUE) instead to force the entire cache to be cleared.

Comments

TomChiverton’s picture

Assigned: Unassigned » TomChiverton
Status: Active » Needs review

Thank you for reporting this issue.

I assume you meant 'continues to use the URL /test'.

I will look into it as soon as I can.

Have you tried this modification yourself already ?

TomChiverton’s picture

Please test the latest dev. release available from http://drupal.org/node/305617

dhauver’s picture

You were indeed correct that I meant to write 'continues to use the URL /test'. I just tested out the latest dev release, and it fixes the issue. Thanks for the quick turnaround!

TomChiverton’s picture

Status: Needs review » Reviewed & tested by the community
TomChiverton’s picture

Status: Reviewed & tested by the community » Closed (fixed)

v1.2 released containing this patch