Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P25P1 Message Framer NPE #1586

Closed
DSheirer opened this issue Jun 26, 2023 · 0 comments · Fixed by #1593
Closed

P25P1 Message Framer NPE #1586

DSheirer opened this issue Jun 26, 2023 · 0 comments · Fixed by #1593
Labels

Comments

@DSheirer
Copy link
Owner

sdrtrunk Version
Master

Describe the bug
When a transmitted TSBK causes a shutdown, residual processing of the code that prepares the message framer for the next message causes a null pointer exception.

As a possible solution, consider moving the line at 325 where it transmits the message to the listener, to the end of the block prior to the case break, so that the post message preparatory actions complete before the message is dispatched that causes the channel shutdown.

We're consistently seeing this in the logs even with the last PR that explicitly shutsdown the channel sample processing.

Application Log

20230625 081645.487 [sdrtrunk polyphase channel thread 1] ERROR i.g.d.sample.Broadcaster - Error while broadcasting [class io.github.dsheirer.dsp.symbol.Dibit] to listeners [Log Suppress 1/5]  [451MB/840MB 53%]
java.lang.NullPointerException: Cannot invoke "io.github.dsheirer.module.decode.p25.phase1.P25P1DataUnitID.getMessageLength()" because "this.mDataUnitID" is null
	at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.dispatchMessage(P25P1MessageFramer.java:334)
	at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.receive(P25P1MessageFramer.java:204)
	at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.receive(P25P1MessageFramer.java:70)
	at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:128)
	at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:52)
	at io.github.dsheirer.dsp.psk.PSKDemodulator.broadcast(PSKDemodulator.java:87)
	at io.github.dsheirer.dsp.psk.DQPSKGardnerDemodulator.calculateSymbol(DQPSKGardnerDemodulator.java:88)
	at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:146)
	at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:121)
	at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderLSM.receive(P25P1DecoderLSM.java:130)
	at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderLSM.receive(P25P1DecoderLSM.java:39)
	at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:128)
	at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:52)
	at io.github.dsheirer.dsp.filter.channelizer.PolyphaseChannelSource.receive(PolyphaseChannelSource.java:143)
	at io.github.dsheirer.dsp.filter.channelizer.PolyphaseChannelSource.receive(PolyphaseChannelSource.java:40)
	at io.github.dsheirer.dsp.filter.channelizer.output.OneChannelOutputProcessor.process(OneChannelOutputProcessor.java:112)
	at io.github.dsheirer.dsp.filter.channelizer.output.ChannelOutputProcessor.lambda$new$0(ChannelOutputProcessor.java:58)
	at io.github.dsheirer.util.Dispatcher.process(Dispatcher.java:182)
	at io.github.dsheirer.util.Dispatcher$ProcessorWithHeartbeat.run(Dispatcher.java:224)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
@DSheirer DSheirer added the bug label Jun 26, 2023
DSheirer pushed a commit that referenced this issue Jul 3, 2023
…he current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel.
DSheirer added a commit that referenced this issue Jul 3, 2023
…he current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel. (#1593)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>
tadscottsmith added a commit to tadscottsmith/sdrtrunk that referenced this issue Aug 7, 2023
* DSheirer#1529 Adds logging suppression to Broadcaster to limit total logged error messages. (DSheirer#1530)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* Revert "DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532)"

This reverts commit 11f37e8.

* DSheirer#35 Updates AM & NBFM decoders to use Adaptive Squelch, a power squelch that includes an adaptive noise floor monitor.  Implements vectorized magnitude operations for AM & FM decoders.  Adds talkgroup assignment and squelch controls to AM channel configuration editor.  Implements new AM gain control that attempts to normalize audio gain quickly at beginning of call/transmission and maintains that gain across lifecycle of the call and resets the gain for the next call. (DSheirer#1540)

Notes on usage:
- When using either AM or FM squelch control use either the Heterodyne channelizer or if using the Polyphase channelizer, avoid using trunk tracking decoders like DMR or P25 or set the squelch threshold high enough to avoid changes in noise floor from polyphase channelizer where it can vary between using the one channel or the two-channel combined channel sources.

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1528 Restores consistent audio segment start tone insertion, broken in DSheirer#1506 (DSheirer#1543)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#648 Resolves issue with audio panel sometimes displaying stale metadata that doesn't clear until the next audio segment is loaded. (DSheirer#1545)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1507 Resolves issue with Cap+ LSN parsing.  Updates Cap+ Site Status and adds RAS bit handling. (DSheirer#1536)

Co-authored-by: Matthew Foster <matthew.foster@noaa.gov>

* Adds native Rdio Scanner streaming. (#1) (DSheirer#1476)

DSheirer#1476 Adds rdio-scanner call upload API streaming support
---------

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1556 DMR Capacity Plus parsing enhancements. (DSheirer#1557)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* added Rsp1TunerConfiguration to JsonSubTypes of RspTunerConfiguration (DSheirer#1555)

Following reports that RSP1 tuner configurations are reset to default on startup. Unable to test

* DSheirer#1548 Reduces default decoder AF gain by 40% to resolve issue with distorted audio from local strong aircraft transmissions. (DSheirer#1559)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1547 Updates playlist alias editor to make add/delete operations more efficient. (DSheirer#1560)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1558 Resolves issue where heterodyne channelizer allows tuning a set of channels that exceed the tuner's bandwidth. (DSheirer#1561)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1565 updates LTR, LTRNet and Passport decoders with new slope decoder.  Resolves issue with LTR Standard decoder state that was combining individual calls to the same talkgroup and causing excessively long calls. (DSheirer#1567)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1568 Updates NBFM decoder configuration so user can enable/disable high-pass filter option in the audio module to effect audio playback and audio recording of the demodulated audio.  Disabling the filter allows recording of DC and sub-audible signalling that may be present in the demodulated audio (e.g. LTR or squelching signalling). (DSheirer#1569)

Co-authored-by: sheirerd <sheirerd@ainfosec.com>

* DSheirer#1573 Adds Digital Coded Squelch (DCS) auxiliary decoder support. (DSheirer#1574)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1575 Updates traffic channel names to be 'T-' concatenated with the parent control channel name from the channel configuration. (DSheirer#1578)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1579 Resolves issue with array index out of bounds error generated in P25 Phase 1 decoders where the Dibit circular buffer attempts to write a (DSheirer#1580)

dibit past the length of the array.  Issue likely occurs when a partial/incomplete put operation adds a dibit and increments the buffer pointer but the thread is interrupted prior to wrapping the buffer pointer.  When the next runnable iteration executes, the pointer is pointing past the end of the buffer.  Updates the code to check the pointer both before and after the put operation.

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1581 Updates Rdio Scanner configuration editor to automatically append the 'api/call-upload' path to the end of the protocol and host value provided by the user.  Sets the host default value to 'http://localhost' but allows the user to overwrite. (DSheirer#1582)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1563 Updates RSP tuner to produce sample buffers with optimal power-of-2 length to enable downstream vectorized operations. (DSheirer#1583)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1584 Updates DMR & P25 decoders to stop processing residual samples from the current buffer after a traffic channel shutdown has been signalled. (DSheirer#1585)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1590 Resolves issue with RSP tuners generating too many native buffers causing excessive memory consumption (DSheirer#1591)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1588 Use JDK20 and Gradle 8.2.  Updates SDRPlay API for compatibility with JDK20 Project Panama Foreign Memory/Function changes. (DSheirer#1589)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1586 Resolves issue in P25 message framer where after transmitting the current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel. (DSheirer#1593)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* Adds event type as a filtering option in the Events tab

* DSheirer#1368 Restructures Message and Event filter framework.

* DSheirer#1603 Resolves issue with de-duplicating events to allow call duration values to display correctly and minimize the quantity of duplicate events.

* DSheirer#1604 Resolves issue with event panel UI layout creating excess space between history management panel and events table.

* DSheirer#1605 Resolves issue where certain Linux users were unable to display the tuner editor panel due to an issue with the frequency control editor's usage of custom cursor.

* DSheirer#1612 Enhance aliasing to support DCS tones

---------

Co-authored-by: Denny Sheirer <dennissheirer2002@yahoo.com>
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
Co-authored-by: wedgef5 <wedgef5@users.noreply.github.com>
Co-authored-by: Matthew Foster <matthew.foster@noaa.gov>
Co-authored-by: Nokoa <Nokoa@users.noreply.github.com>
Co-authored-by: sheirerd <sheirerd@ainfosec.com>
Co-authored-by: Christopher Varner <rdhddood@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant