[webservices] Fwd: dataselect wrong data returned to multithreaded client

Bruce Weertman bruce at iris.washington.edu
Thu Jul 19 10:53:28 PDT 2012


Philip:

Just to get back to you - and everybody else on the list.

Are you saying is  thread-1 and thread-2 are each making requests, but thread-1 gets the data that thread-2 made.

Or something along that line? 

Possibilities:

(1) Collision of token values. Token is generated from the request via a standard hashing algorithm. 

(2) In the java servlet one request gets confused with another request. This could happen if there was a mistake
where the wrong scope was used for variables. For example improperly using variables from the servlet instance and not off 
of the stack or accidentally using a global (ie static) variable. Code review looks OK. But that's just code review.

(3) Some sort of weird networking issue related to reusing http connections??

I wrote a script to scan the cache (had 34,000 items in it) looking for a mis-match between the data and the requests,
but I didn't find any. A necessary but not sufficient test of the cache working properly.


Are you saying that you saw these requests collide
http://www.iris.edu/ws/dataselect/query?net=II&sta=BORG&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26
http://www.iris.edu/ws/dataselect/query?net=II&sta=ARU&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26

I don't see that:

geodude:tmp bruce$ wget -O aru.dat "http://www.iris.edu/ws/dataselect/query?net=II&sta=ARU&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26" 
--2012-07-19 10:19:45--  http://www.iris.edu/ws/dataselect/query?net=II&sta=ARU&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26
Resolving www.iris.edu... 128.95.166.129
Connecting to www.iris.edu|128.95.166.129|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28672 (28K) [application/vnd.fdsn.mseed]
Saving to: `aru.dat'

100%[==================================================================================================================================================================>] 28,672      --.-K/s   in 0.002s  

2012-07-19 10:19:45 (11.3 MB/s) - `aru.dat' saved [28672/28672]

geodude:tmp bruce$ msi aru.dat
II_ARU_00_BHZ, 000001, M, 4096, 2894 samples, 19.99993515 Hz, 2009,136,01:08:44.015300
II_ARU_00_BHZ, 000000, M, 4096, 3104 samples, 19.99993515 Hz, 2009,136,01:11:08.715900
II_ARU_00_BHZ, 000000, M, 4096, 3446 samples, 19.99993515 Hz, 2009,136,01:13:43.916400
II_ARU_00_BHZ, 000000, M, 4096, 3520 samples, 19.99993515 Hz, 2009,136,01:16:36.217000
II_ARU_00_BHZ, 000000, M, 4096, 3712 samples, 19.99993515 Hz, 2009,136,01:19:32.217500
II_ARU_00_BHZ, 000000, M, 4096, 3712 samples, 19.99993515 Hz, 2009,136,01:22:37.818100
II_ARU_00_BHZ, 000001, M, 4096, 852 samples, 19.99993515 Hz, 2009,136,01:25:43.418700


geodude:tmp bruce$ wget -O borg.dat "http://www.iris.edu/ws/dataselect/query?net=II&sta=BORG&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26" 
--2012-07-19 10:18:51--  http://www.iris.edu/ws/dataselect/query?net=II&sta=BORG&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26
Resolving www.iris.edu... 128.95.166.129
Connecting to www.iris.edu|128.95.166.129|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45056 (44K) [application/vnd.fdsn.mseed]
Saving to: `borg.dat'

100%[==================================================================================================================================================================>] 45,056      --.-K/s   in 0.004s  

geodude:tmp bruce$ msi borg.dat
II_BORG_00_BHZ, 000001, M, 4096, 762 samples, 20 Hz, 2009,136,01:08:44.049900
II_BORG_00_BHZ, 000000, M, 4096, 2204 samples, 20 Hz, 2009,136,01:09:22.149900
II_BORG_00_BHZ, 000000, M, 4096, 2120 samples, 20 Hz, 2009,136,01:11:12.349900
II_BORG_00_BHZ, 000000, M, 4096, 2024 samples, 20 Hz, 2009,136,01:12:58.349900
II_BORG_00_BHZ, 000000, M, 4096, 2170 samples, 20 Hz, 2009,136,01:14:39.549900
II_BORG_00_BHZ, 000000, M, 4096, 2122 samples, 20 Hz, 2009,136,01:16:28.049900
II_BORG_00_BHZ, 000000, M, 4096, 2100 samples, 20 Hz, 2009,136,01:18:14.149900
II_BORG_00_BHZ, 000000, M, 4096, 2142 samples, 20 Hz, 2009,136,01:19:59.149900
II_BORG_00_BHZ, 000000, M, 4096, 2172 samples, 20 Hz, 2009,136,01:21:46.249900
II_BORG_00_BHZ, 000000, M, 4096, 2138 samples, 20 Hz, 2009,136,01:23:34.849900
II_BORG_00_BHZ, 000001, M, 4096, 1286 samples, 20 Hz, 2009,136,01:25:21.749900

Any more information would be appreciated.

Thanks,
-Bruce


Begin forwarded message:

>>> 
>>> 
>>> On 2012/07/16 22:29, Philip Crotwell wrote:
>>>> Hi
>>>> 
>>>> I have been doing some tests with the dataselect web service from a
>>>> multithreaded client (SOD) and found that occasionally I would get
>>>> data records back in one thread that were not the channel asked for.
>>>> Luckily I had a check in place from some earlier issues that compared
>>>> the channel codes in the request with those in the result. Here is an
>>>> example. It appears that the thread that requested data from BORG got
>>>> data from ARU.
>>>> 
>>>> 
>>>> 2012-07-16 15:51:26,794 - Channel id in returned seismogram doesn not
>>>> match channelid in request.
>>>> req=II.1986-01-01T00:00:00.000GMT.BORG.00.BHZ.2003-08-29T00:00:00.000GMT
>>>> seis=II.1986-01-01T00:00:00.000GMT.ARU.00.BHZ.2003-08-29T00:00:00.000GMT
>>>> 
>>>> The request, if it helps, was
>>>> net=II&sta=BORG&loc=00&cha=BHZ&start=2009-05-16T01:08:44&end=2009-05-16T01:26:26
>>>> 
>>>> This is a bit scary as I suspect many clients do not check the
>>>> returned data to make sure it actually corresponds to their original
>>>> request. I have not seen this with a single threaded client, so
>>>> perhaps that is a clue.
>>>> 
>>>> I will try to do some more testing and see if I can provide any more details.
>>>> 
>>>> thanks,
>>>> Philip
>>>> _______________________________________________
>>>> webservices mailing list
>>>> 
>>>> webservices at iris.washington.edu
>>>> http://www.iris.washington.edu/mailman/listinfo/webservices
>>>> 
>>>> 
>>>> 
> 

--------------------------------------
Bruce R Weertman
Software Engineer
IRIS DMC
1408 NE 45h St, Suite 201
Seattle, WA 98105

bruce at iris.washington.edu
(206) 547-0393

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.iris.washington.edu/pipermail/webservices/attachments/20120719/02e83840/attachment-0001.htm>


More information about the webservices mailing list