Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Liferay proxy portlet randomly "swallowing" POST requests? #3647

Closed
srinivas-os opened this issue Jul 3, 2018 · 9 comments

Comments

Projects
2 participants
@srinivas-os
Copy link

commented Jul 3, 2018

Orbeon version 2016.2.1 (PE)

I'm trying to automate Orbeon form load/fill-up/save using JMeter. Basically, I send the same set of HTTP requests as a browser sends when filling up a form, from my script.

When submitting XForms event POST requests (triggered by focus or blur of a form field, for example) to the liferay orbeon proxy portlet, sometimes it doesn't seem to actually send the request to the Orbeon form runner instance. In such cases, I get back a 200 OK from the proxy portlet instance, but with an empty/zero-byte response body (instead of the usual xxf:event-response XML body). But on checking the access log of Orbeon server there's no request received at that time. Any subsequent XForms event request for the same form will return an "unexpected sequence number" error from Form Runner, perhaps further proving that the former request never reached orbeon. The form will also not save.

This is not consistently reproducible and happens without any fixed pattern. I suspected a clustering/LB/session-stickiness issue initially (because it is so random), but it happens with a non-clustered setup as well.

I am not sure if this is enough information for you, but I do not know where to go from here or what else I can add.

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented Jul 6, 2018

If this issue doesn't happen when end users are accessing the page, I fear that it might be an issue with the JMeter setup and I am not sure what we can do.

@srinivas-os

This comment has been minimized.

Copy link
Author

commented Jul 6, 2018

Thanks @ebruchez. I'm currently analyzing our logs to see if this issue has happened via browser. However, if this had to do with JMeter setup, I'd expect it to occur every time or at least with some discernible pattern. But it is very random and unpredictable, though very frequent.

In some test runs, it only happens for 1-2 JMeter users and works perfectly for other 10+ JMeter users executing at the same time (in the same run) as the failed ones. Sometimes it happens for all JMeter users. Even the form/field for which it happens (i.e. on whose event submission it happens) is not consistent.

UPDATE: From our access logs, it's apparent that this is happening outside of JMeter as well.

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented Apr 29, 2019

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented Apr 29, 2019

Possible +1 from customer, where the original issue appears similar.

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented Apr 29, 2019

Steps:

  1. Option to disable pooling in ApacheHttpClient for testing and see if the issue still reproduces when disabled.
  2. Implement eviction for case where pool is used.
  3. Switch to PoolingHttpClientConnectionManager (PoolingClientConnectionManager is deprecated).
  4. Why does the HTTP client throw NonRepeatableRequestException?
  5. Consider what to do when an uncaught HTTP client exception is thrown (ClientProtocolException caused by NonRepeatableRequestException).

@ebruchez ebruchez added this to To review in Orbeon Forms 2019.1 via automation May 1, 2019

@ebruchez ebruchez added this to To do in Orbeon Forms 2018.2.3 via automation May 1, 2019

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented May 2, 2019

  • Q: Do we need to upgrade to the non-deprecated HttpClient APIs?
    • It would be a good thing to do but it's not necessary to do it to address this particular issue (#3387).
@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented May 2, 2019

@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented May 2, 2019

  • initial implementation
  • test initial
  • make feature and delays configurable
  • test with embedding
  • test with proxy portlet
  • doc
@ebruchez

This comment has been minimized.

Copy link
Collaborator

commented May 2, 2019

Properties and parameters are documented.

ebruchez added a commit that referenced this issue May 3, 2019

ebruchez added a commit that referenced this issue May 3, 2019

@ebruchez ebruchez moved this from To do to In progress in Orbeon Forms 2018.2.3 May 6, 2019

@ebruchez ebruchez closed this May 16, 2019

Orbeon Forms 2019.1 automation moved this from To review to Done May 16, 2019

Orbeon Forms 2018.2.3 automation moved this from In progress to Done May 16, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.