LP#1717350: fix chunking messages sent from Perl services
authorGalen Charlton <gmc@equinoxinitiative.org>
Thu, 14 Sep 2017 21:36:40 +0000 (17:36 -0400)
committerJason Stephenson <jason@sigio.com>
Fri, 15 Sep 2017 00:30:09 +0000 (20:30 -0400)
commit1f38166249e9f8fbb58ad21d1a00b935200a9278
tree5c1603e8b7c41b055ec41985db6b9ed8e3877414
parentbe2b2645f7da0907366eb0c99b5d6c231c366b30
LP#1717350: fix chunking messages sent from Perl services

The chunk size adjustments introduced by the patches for bug 1709710
could result in calculating non-integral chunk sizes for Perl services.
This in turn led to fractional offsets and lengths being passed to
Perl's substr() function; rounding in turn can lead to characters
in the response getting silently dropped, which in turn broke
parsing the reconstituted response.

To test
-------
The problem can be reproduced by invoking

  open-ils.storage open-ils.storage.actor.org_unit.descendants.atomic 1, 0

in Evergreen databases with org unit trees large enough that the
response gets chunked.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
src/perl/lib/OpenSRF/AppSession.pm