New issue 2166: Infinite loop in readinto (2.6.1) https://bitbucket.org/pypy/pypy/issues/2166/infinite-loop-in-readinto-261
Ionel Cristian Mărieș: The case is not simple bug alas, I could not figure out a simple way to repro. ```python import os import signalfd, signal fd = signalfd.signalfd(-1, [signal.SIGUSR1], signalfd.SFD_CLOEXEC | signalfd.SFD_NONBLOCK) fh = os.fdopen(fd, 'rb') signalfd.read_siginfo(fh) ``` You need to `pip install signalfd` - it uses cffi (source: https://github.com/ionelmc/python-signalfd/blob/master/src/signalfd/__init__.py#L90-L99) Strace output looks like ``` signalfd4(-1, [USR1], 8, O_NONBLOCK|O_CLOEXEC) = 3 fstat(3, {st_mode=0600, st_size=0, ...}) = 0 fcntl(3, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fstat(3, {st_mode=0600, st_size=0, ...}) = 0 read(3, 0x41763f0, 128) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ef, 129) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ee, 130) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ed, 131) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ec, 132) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763eb, 133) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ea, 134) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e9, 135) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e8, 136) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e7, 137) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e6, 138) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e5, 139) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e4, 140) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e3, 141) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e2, 142) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e1, 143) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e0, 144) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763df, 145) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763de, 146) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763dd, 147) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763dc, 148) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763db, 149) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763da, 150) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d9, 151) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d8, 152) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d7, 153) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d6, 154) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d5, 155) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d4, 156) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d3, 157) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d2, 158) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d1, 159) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d0, 160) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cf, 161) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ce, 162) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cd, 163) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cc, 164) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cb, 165) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ca, 166) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c9, 167) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c8, 168) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c7, 169) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c6, 170) = -1 EAGAIN (Resource temporarily unavailable) ``` The offset keeps incrementing. Does not happen on 2.6.0. _______________________________________________ pypy-issue mailing list pypy-issue@python.org https://mail.python.org/mailman/listinfo/pypy-issue