-
Notifications
You must be signed in to change notification settings - Fork 252
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
Audio Recording Stops After Encountering Error #441
Comments
another one 20181030 074230.058 [sdrtrunk pool-1-thread-5] ERROR i.g.d.audio.AudioManager - Encountered error while processing audio packets [627MB/1GB 61%] |
20181030 074230.058 [sdrtrunk pool-1-thread-5] ERROR i.g.d.audio.AudioManager - Encountered error while processing audio packets [627MB/1GB 61%] |
got this one 20181103 055334.555 [sdrtrunk pool-1-thread-6] WARN i.g.d.record.RecorderManager - overflow - audio packets will be dropped until recording catches up [670MB/1GB 65%] w/o any other errors/warnings and recording stops until the app is restarted again. |
same thing again, system is not even that busy during the weekend mornings which is when i like to work on these things ;-) |
turned it into a warning... always followed by an overflow few seconds later.. the info output is from my health patch 20181107 053803.372 [sdrtrunk pool-1-thread-2] WARN i.g.d.s.b.AbstractReusableBuffer - User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count [637MB/1GB 62%] |
Method doc reads that the method is thread-safe, but there exist no locking to ensure thread safety on call into recycle method. Modifying the decrementUserCount method to block other callers to ensure thread-safe access. This appears to be a hot area of code and there may be a performance hit by doing this, please double check my work here.
* Fix for issue #441. Method doc reads that the method is thread-safe, but there exist no locking to ensure thread safety on call into recycle method. Modifying the decrementUserCount method to block other callers to ensure thread-safe access. This appears to be a hot area of code and there may be a performance hit by doing this, please double check my work here. * Moving synchronized to recycle method as it's accessed by two different methods that could potentially cause an unsafe access race condition. * Revert - synchronizing recycle does not protect against multiple recycle calls on the same object.
20181026 064858.641 [sdrtrunk pool-1-thread-7] ERROR i.g.d.audio.AudioManager - Encountered error while processing audio packets [600MB/1GB 58%]
java.lang.IllegalStateException: User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count
at io.github.dsheirer.sample.buffer.AbstractReusableBuffer.recycle(AbstractReusableBuffer.java:118)
at io.github.dsheirer.sample.buffer.AbstractReusableBuffer.decrementUserCount(AbstractReusableBuffer.java:100)
at io.github.dsheirer.audio.AudioManager$AudioPacketProcessor.run(AudioManager.java:445)
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)
The text was updated successfully, but these errors were encountered: