Stas Bekman wrote:

Can you send a short script (removing all the irrelevant bits) that we can reproduce the problem with?

Made a script that generated the same POST request and same redirect as the problem code. The problem was not reproduced!

The only difference I can see between working POSTs (both those
in my package code and the one in the test script) and the failing
one (a particular one in my package) is in the distribution of the
data across the TCP packets that carry the POST.

Packet 1 always has the POST request and a set of headers.

When it works (a 302 is sent), Packet 2 has the Content-Type
header, Packet 3 has the Content-Length header, and Packet 4
has the POSTed variables:

PACKET 2:
0x0000   4500 0065 f659 4000 4006 4993 9084 ecce        [EMAIL PROTECTED]@.I.....
0x0010   9084 ecce 9ea1 0050 482e 99c3 4828 27ae        .......PH...H('.
0x0020   8018 7fff cd14 0000 0101 080a 00a9 6185        ..............a.
0x0030   00a9 6185 436f 6e74 656e 742d 5479 7065        ..a.Content-Type
0x0040   3a20 6170 706c 6963 6174 696f 6e2f 782d        :.application/x-
0x0050   7777 772d 666f 726d 2d75 726c 656e 636f        www-form-urlenco
0x0060   6465 640d 0a                                   ded..

PACKET 3:
0x0000   4500 004b f65a 4000 4006 49ac 9084 ecce        [EMAIL PROTECTED]@.I.....
0x0010   9084 ecce 9ea1 0050 482e 99f4 4828 27ae        .......PH...H('.
0x0020   8018 7fff d88d 0000 0101 080a 00a9 6185        ..............a.
0x0030   00a9 6185 436f 6e74 656e 742d 4c65 6e67        ..a.Content-Leng
0x0040   7468 3a20 3334 320d 0a0d 0a                    th:.342....

PACKET 4:
0x0000   4500 018a f65b 4000 4006 486c 9084 ecce        [EMAIL PROTECTED]@.Hl....
0x0010   9084 ecce 9ea1 0050 482e 9a0b 4828 27ae        .......PH...H('.
0x0020   8018 7fff 945c 0000 0101 080a 00a9 6185        .....\........a.
0x0030   00a9 6185 5f70 6173 735f 6964 3d75 7365        ..a._pass_id=use
0x0040   7233 2534 306d 616b 6574 6865 6361 7365        r3%40makethecase
0x0050   2e6e 6574 265f 7061 7373 5f70 6173 733d        .net&_pass_pass=
[rest of packet cut]


But when it fails (a 200 with a 302 link is sent), all is in the one packet:

0x0000   4500 01af 1d11 4000 4006 2192 9084 ecce        [EMAIL PROTECTED]@.!.....
0x0010   9084 ecce 9faf 0050 f769 cb03 f764 9ec7        .......P.i...d..
0x0020   8018 bb9e fe65 0000 0101 080a 00ad a4b7        .....e..........
0x0030   00ad a4b7 436f 6e74 656e 742d 5479 7065        ....Content-Type
0x0040   3a20 6170 706c 6963 6174 696f 6e2f 782d        :.application/x-
0x0050   7777 772d 666f 726d 2d75 726c 656e 636f        www-form-urlenco
0x0060   6465 640d 0a43 6f6e 7465 6e74 2d4c 656e        ded..Content-Len
0x0070   6774 683a 2033 3037 0d0a 0d0a 5f70 6173        gth:.307...._pas
0x0080   735f 6964 3d75 7365 7233 2534 306d 616b        s_id=user3%40mak
0x0090   6574 6865 6361 7365 2e6e 6574 265f 7061        ethecase.net&_pa
0x00a0   7373 5f70 6173 733d                            ss_pass=
[rest of packet cut]


Could mod_perl, with its persistent buffer, be tripping up on this? I'm trying now to trace the data through the mp2 code. -- Mark



Reply via email to