Summary: | Crashes with PDv3 decoders and multiple runs in PV | ||
---|---|---|---|
Product: | PulseView | Reporter: | Uwe Hermann <uwe> |
Component: | Protocol decoding | Assignee: | Nobody <nobody> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alastair, Gerhard.Sittig, soeren, vanekt |
Priority: | Normal | ||
Version: | unreleased development snapshot | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
Attachments: | gdb log |
Description
Uwe Hermann
2017-02-26 20:07:12 CET
Created attachment 279 [details]
gdb log
*** Bug 906 has been marked as a duplicate of this bug. *** This is really annoying bug. I can confirm that reverting commit "Convert to PD API version 3" workarounds the problem for SWD PD. This will be fixed very soon, there's a work-in-progress patch by gsi_ that seems to work for most cases in that it prevents the crashes. There are some remaining problems with sigrok-test and also with only every second run decoding, hence it's not merged just yet (but will be soonish). http://repo.or.cz/libsigrokdecode/gsi.git/commitdiff/bf7a7312661cabbd6ec4ef513f44971e825252bd Please let us know if it prevents the crashes for you as well (it does for me). Thanks for pointing me to right commit. I tested bf7a7312661cabbd6ec4ef513f44971e825252bd with SWD PD. It solves crashes, no decoder threads are left waiting. Unfortunately decode session fails every other capture run. Might be a problem in SWD PD? Here is part of -l 4 log: =====ok====== srd: Created session 5. srd: Creating new swd instance. srd: Created new swd instance with ID swd-1. srd: Setting channels for instance swd-1 with list of 2 channels. srd: Setting channel mapping: swdio (index 1) = channel 2. srd: Setting channel mapping: swclk (index 0) = channel 1. srd: Final channel map: srd: - index 0 = channel 1 (required) srd: - index 1 = channel 2 (required) srd: Setting session 5 samplerate to 20000000. srd: Registering new callback for output type 0. srd: Calling start() on all instances in session 5. srd: Calling start() method on protocol decoder instance swd-1. srd: Instance swd-1 creating new output type 0 for swd-1. srd: Instance swd-1 creating new output type 1 for swd-1. srd: Initial pins: all 0 (self.initial_pins not set). srd: Decoding: abs start sample 0, abs end sample 20000 (20000 samples, 20000 bytes, unitsize = 1), instance swd-1. srd: No worker thread for this decoder stack exists yet, creating one: swd-1. srd: Starting thread routine for decoder swd-1 srd: Calling decoder's decode() method swd-1 srd: Done, handled all samples (abs cur 20000 / abs end 20000). srd: Freeing instance swd-1 srd: Joining decoder thread swd-1 srd: Raising 'want term', sending 'got new', for instance swd-1 srd: Running join() for instance swd-1 srd: DBG: Decoder_wait(), inst swd-1, will return from .wait(). srd: Decoder's decode() method terminated swd-1 srd: Decoder thread done (not res, want term) swd-1 srd: Call to join() done for instance swd-1 srd: Resetting decoder state swd-1 srd: Releasing initial pin state swd-1 srd: Destroyed session 5. =====failed===== srd: Created session 6. srd: Creating new swd instance. srd: SystemError: Failed to create swd instance: PyEval_EvalFrameEx returned a result with an error set srd: Destroyed session 6. ================ built on Ubuntu 16.04.2 LTS, used Python 3.5.2 Ah, yes, you wrote about "problems with ... only every second run decoding" so you know. Sorry for the noise :-) *** Bug 887 has been marked as a duplicate of this bug. *** *** Bug 914 has been marked as a duplicate of this bug. *** This was fixed in 04383ea876df72b7bd5c19854c30c81abdc0aa0c, thanks a lot! |