Uncaught Exception Error in Serial IO Package #120

Closed
wcunning opened this Issue Oct 13, 2012 · 15 comments

6 participants

@wcunning

Connecting and talking to an up to date openbench logic sniffer does not work with OLS 0.9.6 and Fedora 17 x86_64. The device definitely registers at /dev/ttyACM0, but when I attempt to begin a capture or get device metadata, the attached pastebin'd output shows up. I don't know what I need to do to diagnose this, so suggestions are appreciated.

http://pastebin.com/SduP1EpU

@jawi
Owner

Do you coincidentally run on Linux 3.5? If so, you (and many others) are suffering from a bug in PureJavacomm: nyholku/purejavacomm#12 which is not yet resolved (though there's a rudimentary fix for it)...

@mabl

Oh well, I am also running into this problem with kernel 3.4.7. This is really unfortunate. So I guess I have to stick to ols 0.9.4 for the foreseeable future.

@m1no

Jawi there is a fix out. nyholku/purejavacomm@df25644

@jawi jawi added a commit that referenced this issue Oct 29, 2012
@jawi Fixed issue #120:
- upgraded to PureJavacomm v0.0.10 to fix the serial issues on
  recent Linux kernels with CDC/ACM devices.
a11961d
@jawi
Owner

I've released a service pack for OLS client 0.9.6 that incorporates the latest version of PureJavacomm. See http://dangerousprototypes.com/forum/viewtopic.php?f=57&t=1198&p=12425#p12425 for download links.

@jawi jawi closed this Oct 29, 2012
@notserpe

Uh... this error is still happening for me on F17 x86_64 with 0.9.6.1 and kernel 3.6.3-1.fc17.x86_64

@jawi
Owner

That's odd; could you supply me a stacktrace of the error, is it the exact same issue or perhaps a slightly different one?

Anyways, I'll try to set up a F17 in a virtual machine to see what's causing this...

@notserpe

It's exactly the same, at least the first few lines and last few lines at a quick glance.
I'll try to post a error log shortly.

@jawi
Owner

Ok; I got around to installing F17 in a virtual machine, using the latest updates (Linux fedora 3.6.6-1.fc17.x86_64 ...) and saw two observations:

  1. initially, the Analyzer port dropdown is empty (which is good as I don't want to make any educated guess about the port the device is presumed on), but;
  2. if I hit the Show device metadata button, it can lead to a similar exception as mentioned in this thread earlier. It looks very similar, but in fact is referring to slightly different line numbers.

Once I select the proper port in the Analyzer port dropdown, I am able to successfully detect the device metadata and run a capture normally. I only saw this behavior once, and could no longer reproduce it after selecting a device port.

So, the question is: did you explicitly select an device port or not? If not, does the problem go away if you do? If so, does it help to update your Fedora installation?

@notserpe

Show device metadata gives me the following stack trace:

java.lang.IllegalStateException: JTermios call returned -1 at class jtermios.JTermios$JTermiosLogging line 489
at purejavacomm.PureJavaSerialPort.checkReturnCode(PureJavaSerialPort.java:908)
at purejavacomm.PureJavaSerialPort.(PureJavaSerialPort.java:707)
at purejavacomm.CommPortIdentifier.open(CommPortIdentifier.java:138)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.getSerialPort(CommConnectionFactory.java:141)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.obtainSerialPort(CommConnectionFactory.java:177)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.createConnection(CommConnectionFactory.java:72)
at nl.lxtreme.ols.io.ConnectorServiceImpl.open(ConnectorServiceImpl.java:160)
at org.sump.device.logicsniffer.LogicSnifferDevice.createStreamConnection(LogicSnifferDevice.java:159)
at org.sump.device.logicsniffer.LogicSnifferDetectionTask.call(LogicSnifferDetectionTask.java:82)
at org.sump.device.logicsniffer.LogicSnifferDeviceProfilePanel.obtainDeviceMetadata(LogicSnifferDeviceProfilePanel.java:353)
at org.sump.device.logicsniffer.LogicSnifferDeviceProfilePanel$ShowDeviceMetadataAction.actionPerformed(LogicSnifferDeviceProfilePanel.java:243)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1077)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1003)
at org.sump.device.logicsniffer.LogicSnifferConfigDialog.showDialog(LogicSnifferConfigDialog.java:586)
at org.sump.device.logicsniffer.LogicSnifferDevice.setupCapture(LogicSnifferDevice.java:138)
at nl.lxtreme.ols.client.ClientController.captureData(ClientController.java:535)
at nl.lxtreme.ols.client.action.CaptureAction.actionPerformed(CaptureAction.java:97)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

@jawi
Owner

But, has the Analyzer Port dropdown a value or not? Does the exception disappear when you explicitly (re)select a value?

@notserpe

My bad. Backtrace is when no port is selected.
Capture is working but "Show Meta Data" resets device type pull-down menu to a blank entry
but no backtrace occurs.

@jawi
Owner

Ok; forked a new issue about this: #129.

Thanks for testing this!

@sw
sw commented Jun 22, 2013

Both capture and "show device metadata" are not working form me on 0.9.6.1 with the same error.

I'm running Ubuntu 64-Bit, Linux 3.8.0-25. Trying to connect to a Bus Pirate v3.b Firmware v6.1 r1676.

Port is /dev/ttyUSB0
Bus 001 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

@sw
sw commented Jun 22, 2013

It's working with ols-0.9.7-SNAPSHOT. This seems to be a duplicate of #133

@jawi
Owner

Thanks for testing this out. This issue was already closed, and #133 is a continuation of this issue...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment