tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier ...@ice-sa.com>
Subject Re: 2 POST requests to underlying Server
Date Wed, 11 Aug 2010 16:04:10 GMT
Karthik,

let me try again :

Karthik Nanjangude wrote:
> Hi
> 
>>> Maybe you could try a capture from the client system (the one
> w/ a browser open).
> 
> As I have already posted the form [ please check last few mails exchanged ]
> 
> If the Sample test on the web application is performed from Outer side world [http://www.xyx.com/abcd
]
> 
> Tcp dump captured on Apache Http Server, 2 Post request are clearly visible with 12 sec
apart.
> 
 > If the Sample test on the same hosted web application performed from within the 
internally IP/Port hosted [ http://xyx/abcd ]
 >
 > Tcp dump captured on JBoss [Tomcat Built in ] 1 Post request is visible
 >

Let me use my graphic artwork again :

case a)

client browser (port 2345) --(a)--> (port 80) apache ---(b)---> mod_jk (port 1234) 
---(c)---> (port 8109) tomcat  --> DB

result (per trace on (c)): 2 POSTs (and 2 rows in database DB)

case b)

client  browser (port 2345) ----(d)---> (port 8080 or 8180..) tomcat  --> DB

result (per trace on (d) ?): 1 POST (in database DB)


What you have told us so far, is that when you watch the TCP traffic in (c) above, you see

2 POST requests, from port 1234 (mod_jk) to port 8109 (tomcat AJP connector).

But because these are on the internal link between Apache and Tomcat, it is difficult for

us to see if these are really the /same/ request, duplicated by Apache/mod_jk, or just two

totally unrelated POST requests from different clients.
That is because, at the level of (c), ALL requests will look like they come from port 1234

(mod_jk) to port 8109 (tomcat).


What you have NOT proven to us so far, is that those 2 POST requests are NOT also in (a).
THAT is what we want to know, at 100%.

We want to know this, because we believe that Apache or mod_jk do not just duplicate POST

requests.  We do not believe that they do that, because if they did that, then you would 
not be the only person to mention this problemm and there would be LOTS of peoplehaving 
problems with their bank accounts.

Currently, we believe that it is about 10,000 times more probable, that the 2 POST 
requests are generated by something not working as you expect, but /on the browser side/.

Maybe we are wrong.
But to change our belief, you will have to bring real proof.
You are going to have to show us a trace done at the level (a), showing 1 single POST 
request, and a trace done at the same time at the level (c), showing 2 POST requests.



> 
> 
> 
> If the Sample test on the same hosted web application performed from within the internally
IP/Port hosted [ http://xyx/abcd ]
> 
> Tcp dump captured on JBoss [Tomcat Built in ] 1 Post request is visible
> 
> 
> 
> 
> Both of the samples were verified in 2 Browsers [IE 7+ / FF3 +] more then 6 times and
the info is captured via tcp Dump.
> 
> 
>>> request with wget rather than browsers
> 
> Since the Application is in Production and need some Window Time for taking samples.
> 
> I would definitely get back with the results  by EOD 2 morrow
> 
> 
> With regards
> Karthik
> 
> 
> -----Original Message-----
> From: David Smith [mailto:dns4@cornell.edu]
> Sent: Wednesday, August 11, 2010 7:23 PM
> To: Tomcat Users List
> Subject: Re: 2 POST requests to underlying Server
> 
> Any chance we could see a snippet of access log showing the two
> requests?  All I really see here is two packet captures that *look* like
> they are from in between tomcat and iis (or whatever you are running as
> a front-end web server).  Since 10 addresses are not routeable this
> looks like all internal traffic.  Any chance you could verify this is
> happening (or not) between the client browser and your front-end web
> server?  Maybe you could try a capture from the client system (the one
> w/ a browser open).
> 
> --David
> 
> On 8/11/10 2:08 AM, Karthik Nanjangude wrote:
>> Hi
>>
>> Ok I have copied the wire shark test samples for the 2 Post Requests [ Apache to
JBOSS (Tomcat Internal )..This was taken Aug 9, 2010
>>
>>
>>
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 1nd Post Request
>>
>> No.     Time        Source                Destination           Protocol Info
>>   10022 30.516874   10.151.41.160         10.151.41.163         TCP      33403 >
8109 [PSH, ACK] Seq=2079 Ack=4544 Win=15600 Len=65 TSV=2265749122 TSER=2977204079
>>
>> Frame 10022 (131 bytes on wire, 131 bytes captured)
>>     Arrival Time: Aug  9, 2010 15:30:35.485640000
>>     [Time delta from previous captured frame: 0.000024000 seconds]
>>     [Time delta from previous displayed frame: 30.516874000 seconds]
>>     [Time since reference or first frame: 30.516874000 seconds]
>>     Frame Number: 10022
>>     Frame Length: 131 bytes
>>     Capture Length: 131 bytes
>>     [Frame is marked: True]
>>     [Protocols in frame: eth:ip:tcp:data]
>>     [Coloring Rule Name: TCP]
>>     [Coloring Rule String: tcp]
>> Ethernet II, Src: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea), Dst: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>     Destination: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>         Address: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>         .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
>>         .... ..0. .... .... .... .... = LG bit: Globally unique address (factory
default)
>>     Source: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea)
>>         Address: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea)
>>         .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
>>         .... ..0. .... .... .... .... = LG bit: Globally unique address (factory
default)
>>     Type: IP (0x0800)
>> Internet Protocol, Src: 10.151.41.160 (10.151.41.160), Dst: 10.151.41.163 (10.151.41.163)
>>     Version: 4
>>     Header length: 20 bytes
>>     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
>>         0000 00.. = Differentiated Services Codepoint: Default (0x00)
>>         .... ..0. = ECN-Capable Transport (ECT): 0
>>         .... ...0 = ECN-CE: 0
>>     Total Length: 117
>>     Identification: 0x0d18 (3352)
>>     Flags: 0x02 (Don't Fragment)
>>         0.. = Reserved bit: Not Set
>>         .1. = Don't fragment: Set
>>         ..0 = More fragments: Not Set
>>     Fragment offset: 0
>>     Time to live: 64
>>     Protocol: TCP (0x06)
>>     Header checksum: 0xc4fa [correct]
>>         [Good: True]
>>         [Bad : False]
>>     Source: 10.151.41.160 (10.151.41.160)
>>     Destination: 10.151.41.163 (10.151.41.163)
>> Transmission Control Protocol, Src Port: 33403 (33403), Dst Port: 8109 (8109), Seq:
2079, Ack: 4544, Len: 65
>>     Source port: 33403 (33403)
>>     Destination port: 8109 (8109)
>>     [Stream index: 64]
>>     Sequence number: 2079    (relative sequence number)
>>     [Next sequence number: 2144    (relative sequence number)]
>>     Acknowledgement number: 4544    (relative ack number)
>>     Header length: 32 bytes
>>     Flags: 0x18 (PSH, ACK)
>>         0... .... = Congestion Window Reduced (CWR): Not set
>>         .0.. .... = ECN-Echo: Not set
>>         ..0. .... = Urgent: Not set
>>         ...1 .... = Acknowledgement: Set
>>         .... 1... = Push: Set
>>         .... .0.. = Reset: Not set
>>         .... ..0. = Syn: Not set
>>         .... ...0 = Fin: Not set
>>     Window size: 15600 (scaled)
>>     Checksum: 0x2b50 [validation disabled]
>>         [Good Checksum: False]
>>         [Bad Checksum: False]
>>     Options: (12 bytes)
>>         NOP
>>         NOP
>>         Timestamps: TSval 2265749122, TSecr 2977204079
>>     [SEQ/ACK analysis]
>>         [Number of bytes in flight: 1134]
>> Data (65 bytes)
>>
>> 0000  12 34 00 3d 00 3b 73 69 6d 3d 38 39 36 30 31 39   .4.=.;sim=896019
>> 0010  39 39 30 30 32 30 34 32 36 33 37 35 26 63 61 6e   990020426375&can
>> 0020  6d 73 69 73 64 6e 3d 31 30 35 32 37 37 37 37 37   msisdn=105277777
>> 0030  26 61 63 63 6f 75 6e 74 69 64 3d 36 37 39 37 35   &accountid=67975
>> 0040  31                                                1
>>     Data: 1234003D003B73696D3D3839363031393939303032303432...
>>     [Length: 65]
>>
>>
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 2nd Post Request
>>
>> No.     Time        Source                Destination           Protocol Info
>>   15548 42.619208   10.151.41.160         10.151.41.163         TCP      33418 >
8109 [PSH, ACK] Seq=1075 Ack=6 Win=5840 Len=65 TSV=2265761224 TSER=2977216182
>>
>> Frame 15548 (131 bytes on wire, 131 bytes captured)
>>     Arrival Time: Aug  9, 2010 15:30:47.587974000
>>     [Time delta from previous captured frame: 0.000009000 seconds]
>>     [Time delta from previous displayed frame: 12.102334000 seconds]
>>     [Time since reference or first frame: 42.619208000 seconds]
>>     Frame Number: 15548
>>     Frame Length: 131 bytes
>>     Capture Length: 131 bytes
>>     [Frame is marked: True]
>>     [Protocols in frame: eth:ip:tcp:data]
>>     [Coloring Rule Name: TCP]
>>     [Coloring Rule String: tcp]
>> Ethernet II, Src: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea), Dst: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>     Destination: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>         Address: HewlettP_f8:7d:9c (00:24:81:f8:7d:9c)
>>         .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
>>         .... ..0. .... .... .... .... = LG bit: Globally unique address (factory
default)
>>     Source: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea)
>>         Address: HewlettP_f8:fc:ea (00:24:81:f8:fc:ea)
>>         .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
>>         .... ..0. .... .... .... .... = LG bit: Globally unique address (factory
default)
>>     Type: IP (0x0800)
>> Internet Protocol, Src: 10.151.41.160 (10.151.41.160), Dst: 10.151.41.163 (10.151.41.163)
>>     Version: 4
>>     Header length: 20 bytes
>>     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
>>         0000 00.. = Differentiated Services Codepoint: Default (0x00)
>>         .... ..0. = ECN-Capable Transport (ECT): 0
>>         .... ...0 = ECN-CE: 0
>>     Total Length: 117
>>     Identification: 0x2ad0 (10960)
>>     Flags: 0x02 (Don't Fragment)
>>         0.. = Reserved bit: Not Set
>>         .1. = Don't fragment: Set
>>         ..0 = More fragments: Not Set
>>     Fragment offset: 0
>>     Time to live: 64
>>     Protocol: TCP (0x06)
>>     Header checksum: 0xa742 [correct]
>>         [Good: True]
>>         [Bad : False]
>>     Source: 10.151.41.160 (10.151.41.160)
>>     Destination: 10.151.41.163 (10.151.41.163)
>> Transmission Control Protocol, Src Port: 33418 (33418), Dst Port: 8109 (8109), Seq:
1075, Ack: 6, Len: 65
>>     Source port: 33418 (33418)
>>     Destination port: 8109 (8109)
>>     [Stream index: 257]
>>     Sequence number: 1075    (relative sequence number)
>>     [Next sequence number: 1140    (relative sequence number)]
>>     Acknowledgement number: 6    (relative ack number)
>>     Header length: 32 bytes
>>     Flags: 0x18 (PSH, ACK)
>>         0... .... = Congestion Window Reduced (CWR): Not set
>>         .0.. .... = ECN-Echo: Not set
>>         ..0. .... = Urgent: Not set
>>         ...1 .... = Acknowledgement: Set
>>         .... 1... = Push: Set
>>         .... .0.. = Reset: Not set
>>         .... ..0. = Syn: Not set
>>         .... ...0 = Fin: Not set
>>     Window size: 5840 (scaled)
>>     Checksum: 0xbd20 [validation disabled]
>>         [Good Checksum: False]
>>         [Bad Checksum: False]
>>     Options: (12 bytes)
>>         NOP
>>         NOP
>>         Timestamps: TSval 2265761224, TSecr 2977216182
>>     [SEQ/ACK analysis]
>>         [Number of bytes in flight: 1134]
>> Data (65 bytes)
>>
>> 0000  12 34 00 3d 00 3b 73 69 6d 3d 38 39 36 30 31 39   .4.=.;sim=896019
>> 0010  39 39 30 30 32 30 34 32 36 33 37 35 26 63 61 6e   990020426375&can
>> 0020  6d 73 69 73 64 6e 3d 31 30 35 32 37 37 37 37 37   msisdn=105277777
>> 0030  26 61 63 63 6f 75 6e 74 69 64 3d 36 37 39 37 35   &accountid=67975
>> 0040  31                                                1
>>     Data: 1234003D003B73696D3D3839363031393939303032303432...
>>     [Length: 65]
>>
>>
>>
>> With regards
>> Karthik
>>
>>
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Karthik Nanjangude [mailto:karthik.nanjangude@xius-bcgi.com]
>> Sent: Wednesday, August 11, 2010 11:03 AM
>> To: Tomcat Users List
>> Subject: RE: 2 POST requests to underlying Server
>>
>> Hi
>>
>>
>>>> wireshark or tcpdump running on the external + internal segments simultaneously.
>>>>
>> I can provide u the tcp dump samples which we used to validate using White shark.
>>
>>
>> Of course I need some time (probably by EOD ) to get permission from my authorities
for the same.
>>
>> Is this ok with u
>>
>>
>> With regards
>> KArthik
>>
>> -----Original Message-----
>> From: Hassan Schroeder [mailto:hassan.schroeder@gmail.com]
>> Sent: Wednesday, August 11, 2010 10:49 AM
>> To: Tomcat Users List
>> Subject: Re: 2 POST requests to underlying Server
>>
>> On Tue, Aug 10, 2010 at 10:07 PM, Karthik Nanjangude
>> <karthik.nanjangude@xius-bcgi.com> wrote:
>>
>>
>>> The same test performed on the Internal IP (http://<ip:port>/ABCD), and
was observed that the single Post request was observed with single Insertion to DB ... compared
to 2 POST request via External IO ( http://ABCD.com )
>>>
>>> So how does this prove that the JavaScript as stated below is not working ....
:(
>>>
>> Forget the browser and the JavaScript -- reproduce the problem using
>> wget or curl or something basic to initiate your request, with wireshark
>> or tcpdump running on the external + internal segments simultaneously.
>>
>> Then you'll have some interesting data :-)
>>
>> --
>> Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
>> twitter: @hassan
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message