kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #138382
[Bug 1501345] Re: linux-image-3.13.0-65-generic 3.13.0-65 breaks Python based Serial communication
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 Kernel
Packages, which is subscribed to linux-lts-trusty in Ubuntu.
https://bugs.launchpad.net/bugs/1501345
Title:
linux-image-3.13.0-65-generic 3.13.0-65 breaks Python based Serial
communication
Status in linux-lts-trusty package in Ubuntu:
Confirmed
Bug description:
Today after updating to the linux-image-3.13.0-65-generic 3.13.0-65
Kernel on Lubuntu 14.04.3 LTS two different programs that rely on
PySerial quit working. miniterm.py and my ROS (Robot Operating System)
based Python node quit working.
When rebooted and selected 3.13.0-63-generic via GRUB everything
worked again.
Here are the steps to create the issue with miniterm.py, note that you
need something connected via a USB to Serial adapter for this to work.
I am working with a Parallax Activity Board, but an Arduino should
also exhibit the same behavior.
sudo apt install linux-image-3.13.0-65-generic
sudo apt install linux-image-extra-3.13.0-65-generic
reboot
$ miniterm.py /dev/ttyUSB0 115200
--- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
--- exit ---
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/bin/miniterm.py", line 220, in reader
data = character(self.serial.read(1))
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 460, in read
raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
SerialException: device reports readiness to read but returned no data (device disconnected?)
Reverting to the 3.13.0-63 kernel allows miniterm.py and other Python
Serial based programs to work normally.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-lts-trusty/+bug/1501345/+subscriptions
References