Summary: | segfault when changing voltage ranges on logc16 if bitstream unavailable | ||
---|---|---|---|
Product: | PulseView | Reporter: | karlp |
Component: | Acquisition | Assignee: | Nobody <nobody> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | soeren, uwe |
Priority: | Low | ||
Version: | unreleased development snapshot | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All |
Description
karlp
2018-08-18 15:08:05 CEST
Two issues here: 1) There is no PV code involved in the crash, it is literally all Qt and glib code - suggesting that it's a bug in Qt. Still, odd nonetheless. 2) You're using PV 0.3.0 - I suggest using at least 0.4.0 and ideally the nightly AppImage. Please learn to read the "git describe" output of your own project. If you would like the git describe output to be intuitive to you, please consider a different approach to tags. Can you please provide a list of steps to reproduce? I tried to reproduce via random things I could think of with missing firmware/bitstream files, removing them while PV is running (or before it's started), etc. etc. On my setup I was only getting errors in all cases (no segfaults), though. In most cases I couldn't change the voltage threshold at all actually, since PV will show an error and the logic16 is not being selected in the device drop-down, thus the voltage threshold can't be changed via the UI. Are there any non-standard settings on your distro maybe? E.g. is Qt or glib built in a way so that every assert() in any of those libs leads to the application being killed (instead of just printing a warning or such)? Just a random guess. Sure, reproduce steps: (I can make a video if this doesn't help, it'ðs a little hard to describe gui actions in text sometimes) 1. Make sure one of the bitstreams are missing. karlp@beros:~/.local/share/sigrok-firmware$ mv saleae-logic16-fpga-33.bitstream nothere/ karlp@beros:~/.local/share/sigrok-firmware$ ls nothere saleae-logic16-fpga-18.bitstream saleae-logic16-fx2.fw karlp@beros:~/.local/share/sigrok-firmware$ ls nothere/ saleae-logic16-fpga-33.bitstream karlp@beros:~/.local/share/sigrok-firmware$ 2. start PV 3. Run an aquisition, no problems. (logic 16 is autoselected in dropdown) 4. Click options beside device drop down 5. Select voltage threshold L<1.4V, H>3.6V setting (the "other" setting) 6. Run acquisition. 7. popup says, "Capture failed generic/unspecified error" 8. after pressing ok, window closes and karlp@beros:~/.local/share/sigrok-firmware$ pulseview -l 5 sr: [00:00.000000] log: libsigrok loglevel set to 5. srd: libsigrokdecode loglevel set to 5. Segmentation fault (core dumped) karlp@beros:~/.local/share/sigrok-firmware$ backtrace from above. To the best of my knowledge, my system is vanilla fedora 27. I've only installed qt and glib packages, no source installs. (I've no need for them) I'm afraid I can't get any log output that might explain these steps as that's inside PV, which has crashed at this point. Alright, the difference seems to be that for me I don't get a crash after the popup. You can get more info like this: $ LD_LIBRARY_PATH=$HOME/sr/lib ~/sr/bin/pulseview -c -l 5 -s (-l 5 for max log level, -s so that log messages end up on stderr/stdout instead of PV's log window) sr: [00:10.255246] session: Starting. sr: [00:10.255264] hwdriver: saleae-logic16: Starting acquisition. sr: [00:10.255327] saleae-logic16: Uploading FPGA bitstream 'saleae-logic16-fpga-33.bitstream'. sr: [00:10.255373] resource: SIGROK_FIRMWARE_DIR environment variable not set, ignoring. sr: [00:10.255493] resource: Attempt to open '/home/uwe/.local/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:10.255529] resource: Attempt to open '/home/uwe/sr/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:10.255558] resource: Attempt to open '/usr/local/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:10.255586] resource: Attempt to open '/usr/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:10.255608] resource: Failed to locate 'saleae-logic16-fpga-33.bitstream'. sr: [00:10.255625] resource: Failed to open resource 'saleae-logic16-fpga-33.bitstream' (use loglevel 5/spew for details). sr: [00:10.255643] session: Could not start saleae-logic16 device usb/2-3 acquisition. sr: [00:10.255661] hwdriver: saleae-logic16: Stopping acquisition. Notifying user of session error: "generic/unspecified error" Weirdly, one time I've also seen this in the output, at the very end (but not upon every run): QBackingStore::endPaint() called with active painter on backingstore paint device attached is the -s -l 5 output, I didn't have before. It's not _entirely_ the same as in #1263 << snipped a successful run with the default voltage threshold....> sr: [00:34.225076] session: Creating our own main context. sr: [00:34.225103] session: Starting. sr: [00:34.225121] hwdriver: saleae-logic16: Starting acquisition. sr: [00:34.225138] saleae-logic16: Uploading FPGA bitstream 'saleae-logic16-fpga-33.bitstream'. sr: [00:34.225154] resource: SIGROK_FIRMWARE_DIR environment variable not set, ignoring. sr: [00:34.225220] resource: Attempt to open '/home/karlp/.local/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225247] resource: Attempt to open '/home/karlp/.local/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225266] resource: Attempt to open '/home/karlp/.local/share/flatpak/exports/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225287] resource: Attempt to open '/var/lib/flatpak/exports/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225311] resource: Attempt to open '/usr/local/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225343] resource: Attempt to open '/usr/share/sigrok-firmware/saleae-logic16-fpga-33.bitstream' failed: No such file or directory sr: [00:34.225362] resource: Failed to locate 'saleae-logic16-fpga-33.bitstream'. sr: [00:34.225375] resource: Failed to open resource 'saleae-logic16-fpga-33.bitstream' (use loglevel 5/spew for details). sr: [00:34.225397] session: Could not start saleae-logic16 device usb/1-5.1.4 acquisition. sr: [00:34.225437] hwdriver: saleae-logic16: Stopping acquisition. QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x7f7008001620), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x7f7008001620), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject::installEventFilter(): Cannot filter events for objects in a different thread. QObject::installEventFilter(): Cannot filter events for objects in a different thread. QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QObject: Cannot create children for a parent that is in a different thread. (Parent is Adwaita::WidgetStateEngine(0x1c77dc0), parent's thread is QThread(0x1bd0180), current thread is QThread(0x7f6fdc0013b0) QBackingStore::endPaint() called with active painter on backingstore paint device Segmentation fault (core dumped) Does the problem still occur if you uninstall adwaita-qt or follow the steps listed under "If you have seg-faults with QT apps please do this" on https://github.com/manjaro/release-plan/issues/73 ? To me, this looks like a bug somewhere in the Qt/Adwaita/glib realm. |