When setting path_inc to redis.path.inc entries created by the redirect module lead to a redirect loop. When you delete the redirect and even disable the redirect module, the page still resolves. Not sure if this should be moved to bug in redirect or if it's actually an issue with this module.
Steps to reproduce:
1) Setup redirect and create a redirect from site.com/path1 to site.com/path2
2) Attempt to resolve site.com/path1 and you'll get a redirect loop
3) Disable redirect module
4) Attempt to resolve site.com/path1 and you'll get the contents of site.com/path2, but not the 301 redirect as expected
5) Remove path_inc override and reenable redirect
6) Attempt to resolve site.com/path1 and you'll get the proper 301 redirect to site.com/path2
Comments
Comment #1
pounardThanks for reporting, I will try to reproduce this bug.
Comment #2
rahu231086 commentedyes you are absolute right. Redis path cache is incompatible with redirect module. It does not clear path cache when redirect module update or remove redirect url. please resolve this asap.
thanks
Comment #3
pounardI will try the sooner I can, sadly I also have a day job so I can't guarantee a date for this. Please be aware that the path storage features remains an experimental component, that's why you actually find nasty bugs :)
I pledge I will fix this, nevertheless probably "not today".
Comment #4
socialnicheguru commentedWhat is the status on this?
Comment #5
joelpittetThere was a recent release of redirect module, any chance it fixed this?
Comment #6
pounardMaybe today, but I cannot guarantee it!
Comment #7
pounardI installed Redis 3.x (latest dev version) and Redirect 7.x-1.0-rc2 (released on 2015-Jun-29). Note that Redis was installed and configured before the Redirect module.
I did exactly that, and it works perfectly (no redirect loop). Is there anything more that I missed in my procedure ? Note that I did a redirect toward an existing path (node/1 on my test site).
Did exactly that, but instead of getting the contents of site.com/path2 I got a 404 not found error. This is the awaited behaviour since that the Redirect module does not call the
path_save()method and uses theredirect_url_inbound_alter()to implement its own logic, and bypasses all the core stuff, so once it's disabled, it's not doing its job anymore.OK, did that and it worked as expected.
I did another test, I removed all cached Redis path data and added back the
path.increplacement, and it worked gracefully.Please note that I didn't have any path alias in database before testing, I'm going to run the exact same procedure using the exact same node, but adding an alias to it prior to enabling the Redirect module.
Comment #8
pounardSo, I enabled the path module, cleared the Redis cache, went on my node 1, added an arbitrary alias, then the procedure follows.
Did that, and it worked as expected, meaning that the Redirect module did not created an infinite loop, and it redirected on the right path (the node alias).
Did that, and I got a 404 not found error, for the exact same reason I detailed in my previous comment, so this is working as expected.
Did it, and it worked.
I removed all cached Redis path data and added back the path.inc replacement, and it worked gracefully.
Comment #9
pounardI have to admit it took awfully long time before I tested this issue. Now that said, here are my conclusions:
path.incmay interfere with it.