View Issue Details

IDProjectCategoryView StatusLast Update
0004544OXID eShop (all versions)4.02. Session handlingpublic2014-02-18 16:47
Reporterb.hasis 
PriorityurgentSeveritycriticalReproducibilityalways
Status resolvedResolutionfixed 
Product Version4.7.0_5.0.0_beta2 
Target Version4.7.0_5.0.0_RC1Fixed in Version4.7.0_5.0.0_RC1 
Summary0004544: with varnish basket get lost
DescriptionIf i use varnish, I lost baskets by clicking thru the shop.
Steps To ReproduceStart at Startpage and refresh. Add something to Basket.
Go to a Category add something else to basket.
Go back to the startpage. Nothing in Basket!
Ironically if someone else go to the category, he got a filled basket, mine basket?!
TagsNo tags attached.
ThemeBoth
BrowserAll
PHP Versionany
Database Versionany

Activities

saulius.stasiukaitis

2012-09-24 09:48

reporter   ~0007475

Reminder sent to: b.hasis

Hello,
Thank you for bug entrance. First I write about what bugs we fixed. Maybe you find that we already fixed your case.
To ensure that every page is cached different, every page is cached by its URL address and environment key. Environment key could be found in shop cookie by name “env_key”. Basket and checkout process are not cached, so you always can see your goods by opening basket.
We always had problems, when Reverse Proxy functionality is actually not turned on, but we still open shop with Varnish between. Shop never generate environment key and ESI tags, so Varnish cache everything wrongly and do not refresh information on actions it must, like adding to basket. To check for this problem, we usually look over cookies to see if “env_key” actually changes or open Shop over different port and look if ESI tags are formed correctly.
We had an issue when shop was configured without theme option “iNewBasketItemMessage”, then environment was not changed on adding to basket.
Other problem we had was that in some case ESI links was formed with parameter “force_sid”. To see ESI links you can open shop over different port then Varnish, it should delegate code with ESI tags (in newest version it will generate HTML if not found Reverse Proxy between). Or you can change config file and comment down “do_esi”: “set beresp.do_esi = true;”.
Can you write a bit more about your case? What happens when you open basket after going to empty start page. Do basket has your goods. Is environment key formatted at all and does it change when you add something to basket. Do you see “force_sid” or “sid” parameters in links? Do widgets have different “Executed” time ?

b.hasis

2012-09-25 08:24

reporter   ~0007484

Hi,
"We always had problems, when Reverse Proxy functionality is actually not turned on, but we still open shop with Varnish between." :
Thats in my case the Setting, so if i turned it on, it seems to work all correctly
1. "Is environment key formatted at all and does it change when you add something to basket": They are no "env_key", like you said.
2."What happens when you open basket after going to empty start page.": I cant click on the basket icon, but entering basket by using "url/warenkorb" works, and all things in there are fine.
3."Do you see “force_sid” or “sid” parameters in links?" : Only by adding Item to Basket, by Navigation in the shop i dont see sids anytime/anywhere.
4."Do widgets have different “Executed” time ?" Startpage enter if allready cached: fast(~10ms). Adding Item / slow (200ms+). Back to Startpage, fast(~10ms again)


Something new, maybe i post it in a separated bug report?
If I have the setup with the varnish between, and NO client (browser) interacts for ~1-2 minutes and than i click on something, the browser says my connection get lost(no real http status code, even not in firebug, just "Aborted") , after i pressed "f5" 1-2-3 times, all works back normal.

saulius.stasiukaitis

2012-10-02 15:28

reporter   ~0007529

Reminder sent to: b.hasis

Hello,

Yes I think it would be clearer if you open new bug as those two consist different solutions.

We had a meeting how should Reverse Proxy act, when its functionality is not turned on, but there is Reverse Proxy in between. Theoretically we could send not caching headers, but then it effects browsers, and other Proxies. So it might change third parties modules. That is one reason why decide not to change shop behavior if there is RP functionality turned off, but RP in between.

This abort after minute is a very strange case. Have nothing similar like this. Maybe it is related with Varnish send_timeout parameter? How long does it take for browser to return aborted page ? Did you try to look what varnishlog outputs?

b.hasis

2012-10-05 08:12

reporter   ~0007561

Hi,

"We had a meeting how should Reverse Proxy act, when its functionality is not turned on, but there is Reverse Proxy in between. Theoretically we could send not caching headers, but then it effects browsers, and other Proxies. So it might change third parties modules. That is one reason why decide not to change shop behavior if there is RP functionality turned off, but RP in between."

Its ok for people who know it, but, please, please, please! announce that issue! Put it right to the "?" Icon by the checkbox and put it in every functioen descripten install guide and so on. Mark it RED.
Its like a total suicide for your shop if you run into it!

PS: maybe you can create a function thats detects if there is a varnish between, in that case the user cant deactivate that feature?

"This abort after minute is a very strange case. Have nothing similar like this. Maybe it is related with Varnish send_timeout parameter? How long does it take for browser to return aborted page ? Did you try to look what varnishlog outputs? "
I will test again and if i can reproduce it anyway, ill post a separated bug report.

saulius.stasiukaitis

2012-10-05 08:30

reporter   ~0007562

Reminder sent to: b.hasis

Hello,

I will talk once more with persons responsible for documentation about this possible issue with RP in between but no RP functionality in shop.

In additional, with one of last task we add check if there is Varnish with our configuration in between. If so and RP functionality is not turned on, then shop announce not-caching headers so RP would not cache.
Also we add two checks in admin RP caching part. One check will tell you if there is Varnish with our config between browser and admin. Another check is test button who gets shop home page and look if there is RP in between.
So if you have Varnish with our configuration this bug will not reproduce no more. And if you have different configuration, then you got warning message in admin caching part.