Package: python3
Version: 3.7.5-1
Severity: normal

Dear maintainer,

I have a Python 3 program that tries to find one of the first lines in a
log file after a certain timestamp. Sometimes something writes garbage
data to the logfile causing my program to get inexplicably lost.

After some investigation i have come up with the following program to
reproduce the problem:

    from os import fstat, unlink
    from stat import ST_SIZE
    
    
    fn = "cr-1742ebb0-0172-11ea-b932-0ff8aa5102a4.txt"
    
    with open(fn, "w") as fh:
        fh.write("\r")
    
    with open(fn, errors='replace', encoding='utf8') as fh:
        print("File size: {}".format(fstat(fh.fileno())[ST_SIZE]))
        print(repr(fh.read(1)))
        print("{} position after readline: {}".format(type(fh), fh.tell()))
    
    unlink(fn)

Running this program in the docker image debian:experimental after
installing python3 gives the following output:

    File size: 1
    '\n'
    <class '_io.TextIOWrapper'> position after readline: 
1461501637671185285124623296198104371161410306049

Where i had expected a position no greater than the file size and
and a character that exists in the file or a replacement marker.


-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-6-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

Versions of packages python3 depends on:
ii  libpython3-stdlib  3.7.5-1
ii  python3-minimal    3.7.5-1
ii  python3.7          3.7.5-2

python3 recommends no packages.

Versions of packages python3 suggests:
pn  python3-doc   <none>
pn  python3-tk    <none>
pn  python3-venv  <none>

-- no debconf information

Reply via email to