Thanks, I will check it out as soon as I have some time. Kind Regards, Michael
On Sat, Nov 30, 2019 at 5:11 PM Tuo, Erming <erming....@sap.com> wrote: > > https://issues.apache.org/jira/browse/OLINGO-1413 is created to track the > issue > > On 11/27/19, 4:43 PM, "mibo" <m...@apache.org> wrote: > > Hi Erming, > > You can go to https://issues.apache.org/jira/projects/OLINGO and > create an issue. > Before you can create an issue you have to sign up if not done already. > > Kind regards, Michael > > On Wed, Nov 27, 2019 at 5:04 PM Tuo, Erming <erming....@sap.com> wrote: > > > > Michael, > > > > Thanks for getting back to me. Can you please show me how to create a > JIRA in your system? > > > > Thx > > > > Erming > > > > On 11/27/19, 2:20 AM, "mibo" <m...@apache.org> wrote: > > > > Hi Erming, > > > > I had only a quick look in the hope to detect the problem and > provide > > a fix which can be part of next release. > > However I'm not sure how this can happen when Olingo is used in a > prober way. > > Because from staring with the OData.newInstance() (see TecSvc as > > sample [1]) all further objects are created once for the request and > > are not re-used (afaik). > > As result the mentioned UriInfo as well as the ODataHandler (Impl) > is > > unique for a request. > > > > Nevertheless it would be really nice if you can create a related > JIRA > > issue so that we can use this for further tracking any investigation > > around this. > > > > Kind Regards, Michael > > > > [1]: > https://github.com/apache/olingo-odata4/blob/35e2302576748c36f3b6719dcc311019672a30a6/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java#L63 > > > > On Tue, Nov 26, 2019 at 9:56 PM Tuo, Erming <erming....@sap.com> > wrote: > > > > > > Hi, Ramesh and Olingo team, > > > > > > Did you get a change to look into the issue that we reported > below? > > > > > > Thx > > > > > > Erming > > > > > > On 11/19/19, 4:03 PM, "Tuo, Erming" <erming....@sap.com> wrote: > > > > > > Olingo, > > > > > > We discovered a multi-thread defect surrounding the $filter > operation. We are currently using 4.2 library, but the same issue exists in > the latest 4.6 version. Here are the details > > > > > > How to Reproduce > > > Assume there are two threads hit the system at the same time > with the same the API endpoint, but different user IDs in the $filter as > below, we also have different non-Olingo parameter to earmark the thread ID > so that we can verfiy > > > > > > abc.com/odatav4/user/Students?$filter=userID eq > John&threadID=1 > > > abc.com/odatav4/user/Students?$filter=userID eq > Mary&threadID=2 > > > > > > When you parse out the value from filterOption via UriInfo, > you will find out the user ID is mixed up in different threads – thread #1 > ends up with Mary and vice versa > > > > > > Where is the Defect > > > We debugged into the source code and find out the likely > culprit is that in class ODataHandlerImpl, uriInfo is defined as a class > variable, which is not thread-safe. In method processInternal, there is no > thread-safe protection in the following code > > > > > > > > > final int measurementUriParser = > debugger.startRuntimeMeasurement("Parser", "parseUri"); > > > UriInfo uriInfoLocal = null; > > > try { > > > uriInfo = new Parser(serviceMetadata.getEdm(), odata) > > > .parseUri(request.getRawODataPath(), > request.getRawQueryPath(), null); > > > } catch (final ODataLibraryException e) { > > > debugger.stopRuntimeMeasurement(measurementUriParser); > > > debugger.stopRuntimeMeasurement(measurementHandle); > > > throw e; > > > } > > > … > > > > > > try { > > > new ODataDispatcher(uriInfoLocal, this).dispatch(request, > response); > > > } finally { > > > debugger.stopRuntimeMeasurement(measurementDispatcher); > > > debugger.stopRuntimeMeasurement(measurementHandle); > > > } > > > > > > > > > We proved it is the problem by using a local variable. Please > take a look and raise a JIRA and let me the JIRA number so that we can track > it. > > > > > > Erming Tuo – Development Architect LMS > > > Global Cloud Platform| SAP SuccessFactors > > > erming....@sap.com<mailto:erming....@sap.com> | US > +1-703-678-0615 > > > > > > > > > > > > > > > > > >