Failing UDP mode test

Steven Grimm sgrimm at facebook.com
Thu Sep 7 06:04:35 UTC 2006


This is failing because of the change in the semantics of the rcurr and 
rbuf members of the conn structure that happened when the Facebook code 
was merged into the mainline. The rcurr pointer wasn't getting reset to 
the start of the packet properly on UDP requests.

I've checked in a fix.

Now the UDP test is failing in a different way, though, that doesn't (as 
far as I can tell) seem to be due to the server: it is reporting 14 
successful tests out of 10! I am unfamiliar with the Perl test framework 
you're using so I can't immediately see what's going wrong.

-Steve


Brad Fitzpatrick wrote:
> Stephen,
>
> Can you help me with me t/udp.t test in rev 376+ ?
>
> I can send a single response and get an answer, but the server doesn't
> reply after that....
>
> 05:25:19.481731 IP localhost.37400 > localhost.49176: UDP, length: 17
>         0x0000:  4500 002d 6d13 4000 4011 cfaa 7f00 0001  E..-m. at .@.......
>         0x0010:  7f00 0001 9218 c018 0019 fe2c 00a1 0000  ...........,....
>         0x0020:  0001 0000 6765 7420 666f 6f0d 0a         ....get.foo..
> 05:25:19.482198 IP localhost.49176 > localhost.37400: UDP, length: 36
>         0x0000:  4500 0040 0000 4000 4011 3cab 7f00 0001  E.. at ..@. at .<.....
>         0x0010:  7f00 0001 c018 9218 002c fe3f 00a1 0000  .........,.?....
>         0x0020:  0001 0000 5641 4c55 4520 666f 6f20 3020  ....VALUE.foo.0.
>         0x0030:  360d 0a66 6f6f 7661 6c0d 0a45 4e44 0d0a  6..fooval..END..
> 05:25:19.483596 IP localhost.37400 > localhost.49176: UDP, length: 17
>         0x0000:  4500 002d 6d14 4000 4011 cfa9 7f00 0001  E..-m. at .@.......
>         0x0010:  7f00 0001 9218 c018 0019 fe2c 00a2 0000  ...........,....
>         0x0020:  0001 0000 6765 7420 666f 6f0d 0a         ....get.foo..
>
>
> There, my two requests are identical, except one has 'a1' request ID,
> and the second has 'a1' request ID.
>
> I've also tried with the same request ID:
>
> 05:29:05.030998 IP localhost.42683 > localhost.42659: UDP, length: 17
>         0x0000:  4500 002d c52e 4000 4011 778f 7f00 0001  E..-.. at .@.w.....
>         0x0010:  7f00 0001 a6bb a6a3 0019 fe2c 00a1 0000  ...........,....
>         0x0020:  0001 0000 6765 7420 666f 6f0d 0a         ....get.foo..
> 05:29:05.031248 IP localhost.42659 > localhost.42683: UDP, length: 36
>         0x0000:  4500 0040 0000 4000 4011 3cab 7f00 0001  E.. at ..@. at .<.....
>         0x0010:  7f00 0001 a6a3 a6bb 002c fe3f 00a1 0000  .........,.?....
>         0x0020:  0001 0000 5641 4c55 4520 666f 6f20 3020  ....VALUE.foo.0.
>         0x0030:  360d 0a66 6f6f 7661 6c0d 0a45 4e44 0d0a  6..fooval..END..
> 05:29:05.032610 IP localhost.42683 > localhost.42659: UDP, length: 17
>         0x0000:  4500 002d c52f 4000 4011 778e 7f00 0001  E..-./@. at .w.....
>         0x0010:  7f00 0001 a6bb a6a3 0019 fe2c 00a1 0000  ...........,....
>         0x0020:  0001 0000 6765 7420 666f 6f0d 0a         ....get.foo..
>
>
> Still no answer the second time.
>
> I'd read try_read_udp() --- nowhere does it skip a packet if it's
> lower than my previous request ID or sequence number.  In fact, it'd
> only drop it if my sequence number were not zero.
>
> So I'm lost, and don't want to spend time debugging.
>
> For now, expect t/udp.t to fail, but it shouldn't.
>
> I don't want to do an official release until this is either fixed or
> better documented.
>
> Thanks!
>
> - Brad
>
>
>   



More information about the memcached mailing list