[ 
https://issues.apache.org/jira/browse/THRIFT-5191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zezeng Wang updated THRIFT-5191:
--------------------------------
    Description: 
When writing an irregular string, TZlibTransport cannot read cerrectlly the 
same length of strings 
this may be a bug.

example:
import _import_local_thrift
from thrift.transport import TTransport
from thrift.transport import TZlibTransport


if __name__ == '__main__':
    buff = TTransport.TMemoryBuffer()
    trans = TTransport.TBufferedTransportFactory().getTransport(buff)
    zlib_trans = TZlibTransport.TZlibTransport(trans)
    data = 'abcefg'
    zlib_trans.write(data.encode('utf-8'))
    zlib_trans.flush()
    value = buff.getvalue()
    buff = TTransport.TMemoryBuffer(value)
    trans = TTransport.TBufferedTransportFactory().getTransport(buff)
    zlib_trans = TZlibTransport.TZlibTransport(trans)
    data_r = zlib_trans.read(len(data))
    print("write data:{}".format(data))
    print("write data len :{}".format(len(data)))
    print("read data:{}".format(data_r))
    print("read data len:{}".format(len(data_r)))
 
test result: FALSE
Irregular string:

write data:abcefg
write data len :7
read data:b'abcd'
read data len:4


regular string: TRUE

write data:abcefgabcefg
write data len :14
read data:b'abcefgabcefg'
read data len:14





  was:
When writing an irregular string, TZlibTransport cannot read strings of the 
same length.
this may be a bug.

example:
import _import_local_thrift
from thrift.transport import TTransport
from thrift.transport import TZlibTransport


if __name__ == '__main__':
    buff = TTransport.TMemoryBuffer()
    trans = TTransport.TBufferedTransportFactory().getTransport(buff)
    zlib_trans = TZlibTransport.TZlibTransport(trans)
    data = 'abcefg'
    zlib_trans.write(data.encode('utf-8'))
    zlib_trans.flush()
    value = buff.getvalue()
    buff = TTransport.TMemoryBuffer(value)
    trans = TTransport.TBufferedTransportFactory().getTransport(buff)
    zlib_trans = TZlibTransport.TZlibTransport(trans)
    data_r = zlib_trans.read(len(data))
    print("write data:{}".format(data))
    print("write data len :{}".format(len(data)))
    print("read data:{}".format(data_r))
    print("read data len:{}".format(len(data_r)))
 
test result:
Irregular string:

write data:abcefg
write data len :7
read data:b'abcd'
read data len:4


regular string: 

write data:abcefgabcefg
write data len :14
read data:b'abcefgabcefg'
read data len:14






> When writing an irregular string, TZlibTransport cannot read cerrectlly the 
> same length of strings 
> ---------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-5191
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5191
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Library
>    Affects Versions: 0.13.0
>         Environment: Environment : Ubuntu 18.04.4 
> version : 0.13.0
>            Reporter: Zezeng Wang
>            Priority: Minor
>
> When writing an irregular string, TZlibTransport cannot read cerrectlly the 
> same length of strings 
> this may be a bug.
> example:
> import _import_local_thrift
> from thrift.transport import TTransport
> from thrift.transport import TZlibTransport
> if __name__ == '__main__':
>     buff = TTransport.TMemoryBuffer()
>     trans = TTransport.TBufferedTransportFactory().getTransport(buff)
>     zlib_trans = TZlibTransport.TZlibTransport(trans)
>     data = 'abcefg'
>     zlib_trans.write(data.encode('utf-8'))
>     zlib_trans.flush()
>     value = buff.getvalue()
>     buff = TTransport.TMemoryBuffer(value)
>     trans = TTransport.TBufferedTransportFactory().getTransport(buff)
>     zlib_trans = TZlibTransport.TZlibTransport(trans)
>     data_r = zlib_trans.read(len(data))
>     print("write data:{}".format(data))
>     print("write data len :{}".format(len(data)))
>     print("read data:{}".format(data_r))
>     print("read data len:{}".format(len(data_r)))
>  
> test result: FALSE
> Irregular string:
> write data:abcefg
> write data len :7
> read data:b'abcd'
> read data len:4
> regular string: TRUE
> write data:abcefgabcefg
> write data len :14
> read data:b'abcefgabcefg'
> read data len:14



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to