On 29.1.2016 16:25, Dan Williams wrote:
The #6  - "Do not restore termios on port close" is a controversial
patch. It has the wide impact and definitely can introduce nasty
regressions. It is possible that some code could depend on the
restore
of the term setup. But such dependency is IMHO danger itself. In
other
words I a piece of code needs a port setup should do it itself and
not
blindly rely that the port setup that was somewhat preserved between
port openings.
Yes, code that uses the serial port should set the serial port up
correctly by itself.  And if the other code does that, then it
shouldn't matter whether the termios are left modified or reset back to
previous values.  Was the termios restore causing problems somewhere?
Yes, the restore of termios was a problem. Suppose the following scenario:
1. Initial conditions: tty termios echo on, modem echo on,
2. modem manager startup, mm opens port and sets itself termios echo to off
3. A request for unmanaged gps port. MM starts the gps nmea message stream, closes the port and restore the tty termios echo. 4. Now starts the never ending message ping-pong. Modem emmits nmea sentence, computer echos the sentence back and modem echos the sentence back ....

The overall port output is then not readable by any nmea parser - it is a strange mix of the nmea messages.

The bug occurrence looked as random, it depends on initial tty and modem echo mode. I was not able to replicate the error safely for the long time. It happens only for the unmanaged gps mode. The raw and nmea modes use the good internal MM port setup.

Even if the consumer immediately setup tty to noecho, sometimes a gps message is emitted before the termios is applied. The final solution is to leave the tty gps port in a "ready to read" state - do not restore termios. I think that such setup should be a part of the unmanaged gps port preparation. Later I remembered to the old ATE0 command, and for all cases I disabled the echo on the modem side too.

Thanks for the patches, some good cleanups!

Dan



_______________________________________________
ModemManager-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to