I also found it first in PySerial, but it affects everything down to the
underlying poll() implementation.  Demo C code is attached (compile with
-Wall -std=gnu99).  Under -63 the poll() call blocks for the 1 second
it's supposed to, a ping is sent once a second, and if you short pins
2-3 of the serial port the ping loops back and the code starts running
I/O bound; pinging as fast as it can until you remove the screwdriver.

Under -65 poll() returns immediately even with nothing to read and the
console I/O is the only thing restraining the process.

In short, this is a driver bug, not a Python specific thing, and most
likely breaks any code that relies on select, poll, or epoll for serial
I/O.

** Attachment added: "Code demonstrating poll() problem in 3.13.0-65-generic"
   
https://bugs.launchpad.net/ubuntu/+source/linux-lts-trusty/+bug/1501345/+attachment/4485041/+files/serialpoll.c

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1501345

Title:
  linux-image-3.13.0-65-generic 3.13.0-65 breaks Python based Serial
  communication

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-lts-trusty/+bug/1501345/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to