-
Notifications
You must be signed in to change notification settings - Fork 269
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
TunerController updateLOFrequency() Infinite Loop #276
Comments
Here's another example. https://www.youtube.com/watch?v=THQgXXQ8liI Does some eagle eyed person see what event might be causing this? The only thing significant about the Fire Dispatch is that it's configured as audio priority 1 and nearly all of the other calls you see are being ignored as they're set to 'do not monitor' and 'non-recordable'. |
One weird thing there - your control channel is pushed out to the edge of the spectrum a little before each failure. I've had that happen before but it didn't result in this kind of failure. What I did to prevent that is have one tuner set to a lower sample rate so it didn't move around so much, and just enable and disable channels until it lands on the right tuner (major PITA). Tried running with Java 9, since that's what 0.3.1 was built with? Edit: Just to note, I'm still on v0.3.0-beta.14 |
Huh! I hadn't noticed that... but yeah, if I set it to 407.3000MHz, then all possible control channels fit in the 2.4MHz window, but as calls come in, it starts to shift around. Is this normal behavior? Is there a way of locking a given tuner exclusively to CC duties? Could it be that if call starts and it doesn't end before this tuning shift occurs it would leave the call 'open' once the call's freq is pushed out of range? Does that make sense? EDIT: Also I'm still running Java 8, but I think you're on to something with the tuner bandwidth thing.. |
Ok, so I'm testing this out... Running at 1.2MHz per tuner lead to an overflow condition in about 3 minutes. That's about how long it took at 2.4MHz. I'm now running each tuner set at 2.88MHz. The audio decodes are noticibly choppier, but so far it's been running for 10 minutes without an overflow condition occurring. I'll continue monitoring... |
Ooops, sorry @davidmckenzie I read your comment too fast and misunderstood. Do you just find the tuner on CC duty by looking at the number of channels it's handling? Also is it normal that one tuner would have up to 4 channels at a time while the others have zero? |
Yeah the tuner picking code seems to preference using as few tuners as possible, which is annoying when you've only got a limited amount of actual usable bandwidth. What I do is a little hard to explain - basically I disable all channels, enable the control channel and see which tuner it lands on, then set that tuner to super low sample rate, then enable all my other channels. It's a bit of a screw around, but it generally results in having one tuner only serving control channel, one tuner for a couple of non-trunked p25 channels, and the other tuner gets used for any voice calls on the trunking system. |
So I am trying the limited bandwidth on the 'chosen one' tuner for CC data on the production machine. It's holding up surprisingly well. It's been running (very well) for something like 3 hours now. This same instance would run between 3-10 minutes before hitting the overflow state before. This new approach seems to be working. Thanks @davidmckenzie I think the timing of beta 11 and my local P25 system swapping to a primary CC that was a full 1.5MHz above the usual one might have lead to the confusion (and assumption) that it was something wrong with SDRTrunk. It seems to me that if control channel tracking and the ability to assign a given tuner to a given role (single CC with a 'multiple voice tuner' pool) were added, many of these weird issues would go away. BTW, @DSheirer - In no way do I intend anything negative here. As I've gushed before, this is an amazing application and I've been running it on at least two machines continuously for the last 17 months, and experimented on probably 15 other laptops/SFF PCs/SBCs/netbooks/etc over that time. It's the first thing I check on in the morning and the first thing I check on when I get home from work. I TRULY appreciate your work on this project. :) |
@chudgoo I really appreciate the effort you're putting into tracking down this issue and I want to get it resolved for you. I'm researching how to use Java Mission Control to record the state of the threads/objects at the time of channel lockup so that I can try to figure out what is causing the situation. As soon as I figure out how to use JMC correctly, would you mind recording the lockup and sending me the recording? |
@chudgoo Can you please capture a thread dump report of your running sdrtrunk application. Please use the following steps:
Thanks in advance, |
@DSheirer I'll get on it now. |
Ok, here's the thread dump after overflow freeze. 2017-10-16 11:29:44 "RMI TCP Accept-0" #62 daemon prio=9 os_prio=31 tid=0x00007ff9e325e000 nid=0x11007 runnable [0x0000700006394000] Locked ownable synchronizers: "Attach Listener" #61 daemon prio=9 os_prio=31 tid=0x00007ff9e5ae9000 nid=0x11c23 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "DestroyJavaVM" #60 prio=5 os_prio=31 tid=0x00007ff9e74e8000 nid=0x1c03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "TimerQueue" #58 daemon prio=5 os_prio=31 tid=0x00007ff9e6368800 nid=0x1207 waiting on condition [0x0000700006291000] Locked ownable synchronizers: "pool-1-thread-4" #57 prio=5 os_prio=31 tid=0x00007ff9e88bb800 nid=0x11a7b waiting on condition [0x000070000618e000] Locked ownable synchronizers: "pool-1-thread-3" #56 prio=5 os_prio=31 tid=0x00007ff9e8965000 nid=0x11793 waiting on condition [0x000070000608b000] Locked ownable synchronizers: "pool-1-thread-2" #55 prio=5 os_prio=31 tid=0x00007ff9e4883000 nid=0xec17 waiting on condition [0x0000700005f88000] Locked ownable synchronizers: "pool-1-thread-1" #54 prio=5 os_prio=31 tid=0x00007ff9e291c800 nid=0x110f waiting on condition [0x0000700005cf9000] Locked ownable synchronizers: "AWT-EventQueue-0" #52 prio=6 os_prio=31 tid=0x00007ff9e6215800 nid=0x17f63 runnable [0x0000700005b6e000] Locked ownable synchronizers: "AWT-Shutdown" #51 prio=5 os_prio=31 tid=0x00007ff9e482a000 nid=0x2f78f in Object.wait() [0x00007000018a4000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-24" #49 prio=5 os_prio=31 tid=0x00007ff9e78d1000 nid=0x2f203 waiting on condition [0x000070000807d000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-23" #48 prio=5 os_prio=31 tid=0x00007ff9e58e5800 nid=0x2f003 waiting on condition [0x0000700007f7a000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-22" #47 prio=5 os_prio=31 tid=0x00007ff9e7275000 nid=0x2ee03 waiting on condition [0x0000700007e77000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-21" #46 prio=5 os_prio=31 tid=0x00007ff9e60c7000 nid=0x2ec03 waiting for monitor entry [0x0000700007d74000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-20" #45 prio=5 os_prio=31 tid=0x00007ff9e60e8000 nid=0x2ea03 waiting on condition [0x0000700007c71000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-19" #44 prio=5 os_prio=31 tid=0x00007ff9e5185000 nid=0x2e803 waiting on condition [0x0000700007b6e000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-18" #43 prio=5 os_prio=31 tid=0x00007ff9e68f9000 nid=0x2e603 waiting on condition [0x0000700007a6b000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-17" #42 prio=5 os_prio=31 tid=0x00007ff9e784e800 nid=0x2e403 waiting on condition [0x0000700007968000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-16" #41 prio=5 os_prio=31 tid=0x00007ff9e68e6800 nid=0x2e203 waiting for monitor entry [0x0000700007865000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-15" #39 prio=5 os_prio=31 tid=0x00007ff9e28b8000 nid=0x2de03 waiting on condition [0x000070000765f000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-14" #38 prio=5 os_prio=31 tid=0x00007ff9e88a7800 nid=0x2dc03 waiting on condition [0x000070000755c000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-13" #37 prio=5 os_prio=31 tid=0x00007ff9e517d000 nid=0x2da03 waiting on condition [0x0000700007459000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-12" #36 prio=5 os_prio=31 tid=0x00007ff9e28b7800 nid=0x2d803 waiting on condition [0x0000700007356000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-11" #35 prio=5 os_prio=31 tid=0x00007ff9e48f1000 nid=0x2d603 waiting on condition [0x0000700007253000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-10" #34 prio=5 os_prio=31 tid=0x00007ff9e8201000 nid=0x2d403 waiting on condition [0x0000700007150000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-9" #33 prio=5 os_prio=31 tid=0x00007ff9e68e8000 nid=0x2d203 waiting on condition [0x000070000704d000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-8" #32 prio=5 os_prio=31 tid=0x00007ff9e8200800 nid=0x2d003 runnable [0x0000700006f4a000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-7" #31 prio=5 os_prio=31 tid=0x00007ff9e48e9800 nid=0x2ce03 waiting on condition [0x0000700006e47000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-6" #30 prio=5 os_prio=31 tid=0x00007ff9e58e4800 nid=0x2cc03 waiting on condition [0x0000700006d44000] Locked ownable synchronizers: "Java Sound Event Dispatcher" #29 daemon prio=5 os_prio=31 tid=0x00007ff9e60ec800 nid=0x2ca03 in Object.wait() [0x0000700006c41000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-5" #28 prio=5 os_prio=31 tid=0x00007ff9e7277000 nid=0xd623 waiting on condition [0x0000700005a6d000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-4" #27 prio=5 os_prio=31 tid=0x00007ff9e30b5800 nid=0x2c803 runnable [0x0000700006b3e000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-3" #26 prio=5 os_prio=31 tid=0x00007ff9ee800800 nid=0x2bb0f runnable [0x0000700006a3a000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-2" #25 prio=5 os_prio=31 tid=0x00007ff9e719c000 nid=0x17803 waiting on condition [0x0000700006832000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-1" #24 prio=5 os_prio=31 tid=0x00007ff9e60f0000 nid=0x1760b waiting on condition [0x000070000672f000] Locked ownable synchronizers: "Java2D Disposer" #22 daemon prio=10 os_prio=31 tid=0x00007ff9e2857000 nid=0x15e0f in Object.wait() [0x000070000662c000] Locked ownable synchronizers: "Java2D Queue Flusher" #21 daemon prio=10 os_prio=31 tid=0x00007ff9e391a000 nid=0x15607 in Object.wait() [0x0000700006529000] Locked ownable synchronizers: "AppKit Thread" #19 daemon prio=5 os_prio=31 tid=0x00007ff9e483a000 nid=0x307 runnable [0x0000000000000000] Locked ownable synchronizers: "Service Thread" #18 daemon prio=9 os_prio=31 tid=0x00007ff9e7831000 nid=0xab03 runnable [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread11" #17 daemon prio=9 os_prio=31 tid=0x00007ff9e7826000 nid=0xa903 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread10" #16 daemon prio=9 os_prio=31 tid=0x00007ff9e7825000 nid=0xa703 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread9" #15 daemon prio=9 os_prio=31 tid=0x00007ff9e480e000 nid=0xa503 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread8" #14 daemon prio=9 os_prio=31 tid=0x00007ff9e480d000 nid=0xa303 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread7" #13 daemon prio=9 os_prio=31 tid=0x00007ff9e480c800 nid=0xa103 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread6" #12 daemon prio=9 os_prio=31 tid=0x00007ff9e480b800 nid=0x9f03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread5" #11 daemon prio=9 os_prio=31 tid=0x00007ff9e4813000 nid=0x9d03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread4" #10 daemon prio=9 os_prio=31 tid=0x00007ff9e700c800 nid=0x9b03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread3" #9 daemon prio=9 os_prio=31 tid=0x00007ff9e4812800 nid=0x9903 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread2" #8 daemon prio=9 os_prio=31 tid=0x00007ff9e4811800 nid=0x9703 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread1" #7 daemon prio=9 os_prio=31 tid=0x00007ff9e4800000 nid=0x9503 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread0" #6 daemon prio=9 os_prio=31 tid=0x00007ff9e817a000 nid=0x9303 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "Signal Dispatcher" #5 daemon prio=9 os_prio=31 tid=0x00007ff9e8806800 nid=0x9103 runnable [0x0000000000000000] Locked ownable synchronizers: "Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=31 tid=0x00007ff9e8805000 nid=0x8e03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007ff9e6003000 nid=0x7f03 in Object.wait() [0x00007000048b7000] Locked ownable synchronizers: "Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007ff9e3809800 nid=0x7d03 in Object.wait() [0x00007000047b4000] Locked ownable synchronizers: "VM Thread" os_prio=31 tid=0x00007ff9e500d000 nid=0x7b03 runnable "Gang worker#0 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5006000 nid=0x2503 runnable "Gang worker#1 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5007000 nid=0x2703 runnable "Gang worker#2 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5007800 nid=0x2903 runnable "Gang worker#3 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5008000 nid=0x2b03 runnable "Gang worker#4 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5008800 nid=0x2d03 runnable "Gang worker#5 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5009800 nid=0x2f03 runnable "Gang worker#6 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e500a000 nid=0x3103 runnable "Gang worker#7 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e500a800 nid=0x3303 runnable "Gang worker#8 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e480a800 nid=0x3503 runnable "Gang worker#9 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e480b000 nid=0x3703 runnable "Gang worker#10 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e5800000 nid=0x3903 runnable "Gang worker#11 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e500b000 nid=0x3b03 runnable "Gang worker#12 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e500c000 nid=0x3d03 runnable "Gang worker#13 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e500c800 nid=0x3f03 runnable "Gang worker#14 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e6000000 nid=0x4103 runnable "Gang worker#15 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e6800000 nid=0x4303 runnable "Gang worker#16 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e7000000 nid=0x4503 runnable "Gang worker#17 (Parallel GC Threads)" os_prio=31 tid=0x00007ff9e7001000 nid=0x4703 runnable "G1 Main Concurrent Mark GC Thread" os_prio=31 tid=0x00007ff9e7819000 nid=0x6f03 runnable "Gang worker#0 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ff9e781a000 nid=0x7103 runnable "Gang worker#1 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ff9e781a800 nid=0x7303 runnable "Gang worker#2 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ff9e781b000 nid=0x7503 runnable "Gang worker#3 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ff9e781b800 nid=0x7703 runnable "Gang worker#4 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ff9e5801000 nid=0x7903 runnable "G1 Concurrent Refinement Thread#0" os_prio=31 tid=0x00007ff9e7807000 nid=0x6d03 runnable "G1 Concurrent Refinement Thread#1" os_prio=31 tid=0x00007ff9e7806000 nid=0x6b03 runnable "G1 Concurrent Refinement Thread#2" os_prio=31 tid=0x00007ff9e7805800 nid=0x6903 runnable "G1 Concurrent Refinement Thread#3" os_prio=31 tid=0x00007ff9e7804800 nid=0x6703 runnable "G1 Concurrent Refinement Thread#4" os_prio=31 tid=0x00007ff9e7804000 nid=0x6503 runnable "G1 Concurrent Refinement Thread#5" os_prio=31 tid=0x00007ff9e7803000 nid=0x6303 runnable "G1 Concurrent Refinement Thread#6" os_prio=31 tid=0x00007ff9e7802800 nid=0x6103 runnable "G1 Concurrent Refinement Thread#7" os_prio=31 tid=0x00007ff9e7801800 nid=0x5f03 runnable "G1 Concurrent Refinement Thread#8" os_prio=31 tid=0x00007ff9e3005800 nid=0x5d03 runnable "G1 Concurrent Refinement Thread#9" os_prio=31 tid=0x00007ff9e3005000 nid=0x5b03 runnable "G1 Concurrent Refinement Thread#10" os_prio=31 tid=0x00007ff9e3004000 nid=0x5903 runnable "G1 Concurrent Refinement Thread#11" os_prio=31 tid=0x00007ff9e7003800 nid=0x5703 runnable "G1 Concurrent Refinement Thread#12" os_prio=31 tid=0x00007ff9e7003000 nid=0x5503 runnable "G1 Concurrent Refinement Thread#13" os_prio=31 tid=0x00007ff9e7801000 nid=0x5303 runnable "G1 Concurrent Refinement Thread#14" os_prio=31 tid=0x00007ff9e7800000 nid=0x5103 runnable "G1 Concurrent Refinement Thread#15" os_prio=31 tid=0x00007ff9e3003800 nid=0x4f03 runnable "G1 Concurrent Refinement Thread#16" os_prio=31 tid=0x00007ff9e3002800 nid=0x4d03 runnable "G1 Concurrent Refinement Thread#17" os_prio=31 tid=0x00007ff9e7002000 nid=0x4b03 runnable "G1 Concurrent Refinement Thread#18" os_prio=31 tid=0x00007ff9e7001800 nid=0x4903 runnable "VM Periodic Task Thread" os_prio=31 tid=0x00007ff9e4801000 nid=0xad03 waiting on condition JNI global references: 2596 |
Here's another that just happened. 2017-10-16 11:40:30 "RMI TCP Accept-0" #62 daemon prio=9 os_prio=31 tid=0x00007ffeffc18000 nid=0x31703 runnable [0x00007000093f8000] Locked ownable synchronizers: "DestroyJavaVM" #61 prio=5 os_prio=31 tid=0x00007ffefe171000 nid=0x1c03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "TimerQueue" #60 daemon prio=5 os_prio=31 tid=0x00007ffefacdb800 nid=0x11727 waiting on condition [0x0000700006b53000] Locked ownable synchronizers: "pool-1-thread-4" #59 prio=5 os_prio=31 tid=0x00007ffeff160000 nid=0x11d17 waiting on condition [0x0000700006a50000] Locked ownable synchronizers: "pool-1-thread-3" #58 prio=5 os_prio=31 tid=0x00007ffeff27d800 nid=0x1307 waiting on condition [0x000070000694d000] Locked ownable synchronizers: "AWT-EventQueue-0" #53 prio=6 os_prio=31 tid=0x00007ffefc8c3000 nid=0xea9f waiting on condition [0x00007000064b5000] Locked ownable synchronizers: "AWT-Shutdown" #54 prio=5 os_prio=31 tid=0x00007ffefd106000 nid=0x2c50f in Object.wait() [0x00007000063b2000] Locked ownable synchronizers: "Attach Listener" #52 daemon prio=9 os_prio=31 tid=0x00007fff00057800 nid=0x181cb waiting on condition [0x0000000000000000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-24" #51 prio=5 os_prio=31 tid=0x00007ffefe084800 nid=0x2f007 waiting on condition [0x0000700008b48000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-23" #50 prio=5 os_prio=31 tid=0x00007ffefe859000 nid=0x2ee03 waiting on condition [0x0000700008a45000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-22" #49 prio=5 os_prio=31 tid=0x00007ffefe083800 nid=0x2ec0b waiting on condition [0x0000700008942000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-21" #48 prio=5 os_prio=31 tid=0x00007ffefaa74000 nid=0x2ea07 waiting on condition [0x000070000883f000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-20" #46 prio=5 os_prio=31 tid=0x00007ffefe083000 nid=0x2e607 runnable [0x0000700008639000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-19" #45 prio=5 os_prio=31 tid=0x00007ffefc0f9000 nid=0x2e407 waiting on condition [0x0000700008536000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-18" #44 prio=5 os_prio=31 tid=0x00007ffefc0e6800 nid=0x2e203 waiting on condition [0x0000700008433000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-17" #43 prio=5 os_prio=31 tid=0x00007ffefd8a1000 nid=0x2e003 runnable [0x0000700008330000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-16" #42 prio=5 os_prio=31 tid=0x00007ffefd855800 nid=0x2de03 waiting on condition [0x000070000822d000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-15" #40 prio=5 os_prio=31 tid=0x00007ffefb2c0000 nid=0x2da03 waiting on condition [0x0000700008027000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-14" #39 prio=5 os_prio=31 tid=0x00007ffefd098800 nid=0x2d803 runnable [0x0000700007f24000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-13" #38 prio=5 os_prio=31 tid=0x00007ffefe8b3800 nid=0x2d603 waiting on condition [0x0000700007e21000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-12" #37 prio=5 os_prio=31 tid=0x00007ffefc0f8000 nid=0x2d403 waiting on condition [0x0000700007d1e000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-11" #36 prio=5 os_prio=31 tid=0x00007ffefe066000 nid=0x2d203 runnable [0x0000700007c1a000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-10" #35 prio=5 os_prio=31 tid=0x00007ffefb2eb000 nid=0x2d003 waiting on condition [0x0000700007b18000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-9" #34 prio=5 os_prio=31 tid=0x00007ffefe8b7800 nid=0x2ce03 waiting for monitor entry [0x0000700007a15000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-8" #33 prio=5 os_prio=31 tid=0x00007ffefb2ea000 nid=0x2cc03 waiting on condition [0x0000700007912000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-7" #32 prio=5 os_prio=31 tid=0x00007ffefc9ca000 nid=0x2ca03 waiting on condition [0x000070000780f000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-6" #31 prio=5 os_prio=31 tid=0x00007ffefaa8f000 nid=0x2c803 waiting for monitor entry [0x000070000770c000] Locked ownable synchronizers: "Java Sound Event Dispatcher" #30 daemon prio=5 os_prio=31 tid=0x00007fff00149800 nid=0x2c49f in Object.wait() [0x0000700007609000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-5" #28 prio=5 os_prio=31 tid=0x00007fff00145000 nid=0x2c203 waiting on condition [0x0000700007403000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-4" #27 prio=5 os_prio=31 tid=0x00007ffefb2b2800 nid=0x2c003 waiting on condition [0x00007000062af000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-3" #26 prio=5 os_prio=31 tid=0x00007fff00144000 nid=0x2bc03 waiting on condition [0x0000700007300000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-2" #25 prio=5 os_prio=31 tid=0x00007fff0013d800 nid=0x17903 waiting on condition [0x00007000070f7000] Locked ownable synchronizers: "sdrtrunk pool-1-thread-1" #24 prio=5 os_prio=31 tid=0x00007ffefb269800 nid=0x1770b waiting on condition [0x0000700006ff4000] Locked ownable synchronizers: "Java2D Disposer" #22 daemon prio=10 os_prio=31 tid=0x00007fff000b6000 nid=0x15f03 in Object.wait() [0x0000700006ef1000] Locked ownable synchronizers: "Java2D Queue Flusher" #21 daemon prio=10 os_prio=31 tid=0x00007ffeff0b1800 nid=0x15607 in Object.wait() [0x0000700006dee000] Locked ownable synchronizers: "AppKit Thread" #19 daemon prio=5 os_prio=31 tid=0x00007ffeff82b800 nid=0x307 runnable [0x0000000000000000] Locked ownable synchronizers: "Service Thread" #18 daemon prio=9 os_prio=31 tid=0x00007ffefc02d800 nid=0xab03 runnable [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread11" #17 daemon prio=9 os_prio=31 tid=0x00007ffefa024800 nid=0xa903 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread10" #16 daemon prio=9 os_prio=31 tid=0x00007ffeff009800 nid=0xa703 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread9" #15 daemon prio=9 os_prio=31 tid=0x00007ffefc822800 nid=0xa503 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C1 CompilerThread8" #14 daemon prio=9 os_prio=31 tid=0x00007ffefc822000 nid=0xa303 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread7" #13 daemon prio=9 os_prio=31 tid=0x00007ffefa024000 nid=0xa103 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread6" #12 daemon prio=9 os_prio=31 tid=0x00007fff00029000 nid=0x9f03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread5" #11 daemon prio=9 os_prio=31 tid=0x00007fff00028000 nid=0x9d03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread4" #10 daemon prio=9 os_prio=31 tid=0x00007ffefe00c000 nid=0x9b03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread3" #9 daemon prio=9 os_prio=31 tid=0x00007ffefe003000 nid=0x9903 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread2" #8 daemon prio=9 os_prio=31 tid=0x00007ffefc024800 nid=0x9703 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread1" #7 daemon prio=9 os_prio=31 tid=0x00007ffefc024000 nid=0x9503 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "C2 CompilerThread0" #6 daemon prio=9 os_prio=31 tid=0x00007ffefc023000 nid=0x9303 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "Signal Dispatcher" #5 daemon prio=9 os_prio=31 tid=0x00007ffefc022800 nid=0x9103 runnable [0x0000000000000000] Locked ownable synchronizers: "Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=31 tid=0x00007ffefc01e800 nid=0x8e03 waiting on condition [0x0000000000000000] Locked ownable synchronizers: "Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007ffeff004800 nid=0x7f03 in Object.wait() [0x00007000050f9000] Locked ownable synchronizers: "Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007ffefc01c000 nid=0x7d03 in Object.wait() [0x0000700004ff6000] Locked ownable synchronizers: "VM Thread" os_prio=31 tid=0x00007ffefa95c800 nid=0x7b03 runnable "Gang worker#0 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefb00c800 nid=0x2503 runnable "Gang worker#1 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefc800000 nid=0x2703 runnable "Gang worker#2 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefb00d000 nid=0x2903 runnable "Gang worker#3 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefc801000 nid=0x2b03 runnable "Gang worker#4 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefd000000 nid=0x2d03 runnable "Gang worker#5 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefd001000 nid=0x2f03 runnable "Gang worker#6 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefc000800 nid=0x3103 runnable "Gang worker#7 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefc001800 nid=0x3303 runnable "Gang worker#8 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefd800000 nid=0x3503 runnable "Gang worker#9 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefc801800 nid=0x3703 runnable "Gang worker#10 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefe000000 nid=0x3903 runnable "Gang worker#11 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefe800000 nid=0x3b03 runnable "Gang worker#12 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefe801000 nid=0x3d03 runnable "Gang worker#13 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefa800800 nid=0x3f03 runnable "Gang worker#14 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefa802800 nid=0x4103 runnable "Gang worker#15 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefe001000 nid=0x4303 runnable "Gang worker#16 (Parallel GC Threads)" os_prio=31 tid=0x00007ffefa803800 nid=0x4503 runnable "Gang worker#17 (Parallel GC Threads)" os_prio=31 tid=0x00007ffeff000000 nid=0x4703 runnable "G1 Main Concurrent Mark GC Thread" os_prio=31 tid=0x00007ffefc014000 nid=0x6f03 runnable "Gang worker#0 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ffefc015000 nid=0x7103 runnable "Gang worker#1 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ffefc015800 nid=0x7303 runnable "Gang worker#2 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ffefc016000 nid=0x7503 runnable "Gang worker#3 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ffefc016800 nid=0x7703 runnable "Gang worker#4 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007ffefc017800 nid=0x7903 runnable "G1 Concurrent Refinement Thread#0" os_prio=31 tid=0x00007ffefc002000 nid=0x6d03 runnable "G1 Concurrent Refinement Thread#1" os_prio=31 tid=0x00007ffefa80a000 nid=0x6b03 runnable "G1 Concurrent Refinement Thread#2" os_prio=31 tid=0x00007ffefa809000 nid=0x6903 runnable "G1 Concurrent Refinement Thread#3" os_prio=31 tid=0x00007ffefa808800 nid=0x6703 runnable "G1 Concurrent Refinement Thread#4" os_prio=31 tid=0x00007ffefa807800 nid=0x6503 runnable "G1 Concurrent Refinement Thread#5" os_prio=31 tid=0x00007ffefa807000 nid=0x6303 runnable "G1 Concurrent Refinement Thread#6" os_prio=31 tid=0x00007ffefa806000 nid=0x6103 runnable "G1 Concurrent Refinement Thread#7" os_prio=31 tid=0x00007ffeff803000 nid=0x5f03 runnable "G1 Concurrent Refinement Thread#8" os_prio=31 tid=0x00007ffefb00e800 nid=0x5d03 runnable "G1 Concurrent Refinement Thread#9" os_prio=31 tid=0x00007ffefb00d800 nid=0x5b03 runnable "G1 Concurrent Refinement Thread#10" os_prio=31 tid=0x00007ffefa805800 nid=0x5903 runnable "G1 Concurrent Refinement Thread#11" os_prio=31 tid=0x00007ffeff802800 nid=0x5703 runnable "G1 Concurrent Refinement Thread#12" os_prio=31 tid=0x00007ffeff801800 nid=0x5503 runnable "G1 Concurrent Refinement Thread#13" os_prio=31 tid=0x00007ffeff801000 nid=0x5303 runnable "G1 Concurrent Refinement Thread#14" os_prio=31 tid=0x00007ffeff800000 nid=0x5103 runnable "G1 Concurrent Refinement Thread#15" os_prio=31 tid=0x00007ffefa804800 nid=0x4f03 runnable "G1 Concurrent Refinement Thread#16" os_prio=31 tid=0x00007ffefa804000 nid=0x4d03 runnable "G1 Concurrent Refinement Thread#17" os_prio=31 tid=0x00007ffeff001800 nid=0x4b03 runnable "G1 Concurrent Refinement Thread#18" os_prio=31 tid=0x00007ffeff001000 nid=0x4903 runnable "VM Periodic Task Thread" os_prio=31 tid=0x00007fff00041800 nid=0xad03 waiting on condition JNI global references: 1596 |
Ugh! Unfortunately, it's what I suspected ... dead-locked threads. On the bright side, now I know what to fix. Thanks very much @chudgoo !! |
occured when the ChannelProcessionManager was allocating a new channel causing the tuner to invoke the updateLOFrequency() method that was trying to find a center tune frequency that would accommodate all of the channels, specifically in the instance where the distance between the highest channel and the middle channel was exactly one-half of the tuner's bandwidth. This situation would cause the calculated adjustment to be zero and would cause an infinite loop, locking all channels from accessing the any channel startup/teardown events and causing running channels to block with buffer overflows. Added 1 to the adjustment to ensure that the initial adjustment placed the center overlapping channel fully to the left of the center DC spike so that on the next iteration that channel would no longer be overlapping.
Issue was tracked down to the TunerController.updateLOFrequency() method where it would enter an infinite loop while trying to find a center tune frequency when the frequency separation between the highest channel and a center channel that overlaps the central DC spike avoid zone was exactly 1/2 of the tuner's bandwidth. Fix will be merged into master and then cherry-picked onto a 0.3.2 development branch for beta testing. |
occured when the ChannelProcessionManager was allocating a new channel causing the tuner to invoke the updateLOFrequency() method that was trying to find a center tune frequency that would accommodate all of the channels, specifically in the instance where the distance between the highest channel and the middle channel was exactly one-half of the tuner's bandwidth. This situation would cause the calculated adjustment to be zero and would cause an infinite loop, locking all channels from accessing the any channel startup/teardown events and causing running channels to block with buffer overflows. Added 1 to the adjustment to ensure that the initial adjustment placed the center overlapping channel fully to the left of the center DC spike so that on the next iteration that channel would no longer be overlapping. (cherry picked from commit f3d3a81)
…ry-pick Resolves #276 Traffic Channel threads locking in overflow state. Issue
@chudgoo I published a V.0.3.2-beta1 release to patch this issue. Please test when you have an opportunity and let me know if the issue is resolved. I'll keep this ticket open until we confirm that issue is resolved. |
Sorry for the late response. Will install, test now and report back soon. Thanks @DSheirer |
I've been running one dual tuner instance since last night around 10PM and it was still running this morning, though the CC changed on me overnight. Also, I've been running a two tuner instance since about 7:30 this morning and it's been working flawlessly. I even have all aliases enabled for extra stress testing. Whatever you did seems to have fixed the issue for me! Thanks @DSheirer ! |
Not to keep flooding this thread, but both instances have been rock solid for the last ~40 hours. MUCH better than the 3 minutes I was getting before. ;) However, the home (production) instance lost network connectivity (thanks comcast) and the streaming tab was stuck on 'connecting' because OSX is dumb sometimes and doesn't automatically reconnect when the wireless gateway power cycles. Going to swap to wired ethernet tonight to help with this snag. VERY good work @DSheirer ! |
Closing issue as resolved. |
Here's an (unlisted) youtube video of the issue: https://www.youtube.com/watch?v=vF6HEKqRvX0
I am running two instances of sdrtrunk 0.3.1-final.
They have the same (software) configs, but one has four tuners and the other has two.
With only one P25 control channel enabled, given sufficient time/traffic/activity (not sure which exactly yet), the application will stop tracking the CC and stop producing audio and show the CC and whichever calls were running at the time in "OVERFLOW" mode. The Messages/Events tabs freeze, but the waterfall and FFT continue to scroll.
If I go into the Channels tab and disable or enable any of the control channels, the application freezes completely. Nothing is clickable, the waterfall/FFT stop and the window is not resize-able, yet it doesn't "crash" exactly by closing the window.
This issue seemed to go away around beta 11 (i think) but seems to have returned.
The logs don't really indicate the issue, but I'll paste them here:
(note that this machine is a 12 core Mac Pro w/ 64GB RAM, and the same thing happens here as it does on the quad core i7 w/ 16GB RAM using the same mix of tuners (rtlsdr v3, NESDR and FlightAware)
$ bash ./run_sdrtrunk_linux.sh
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Using Java 8 program options
10:17:30.664 INFO gui.SDRTrunk -
10:17:30.667 INFO gui.SDRTrunk - *******************************************************************
10:17:30.667 INFO gui.SDRTrunk - **** sdrtrunk: a trunked radio and digital decoding application ***
10:17:30.667 INFO gui.SDRTrunk - **** website: https://github.com/dsheirer/sdrtrunk ***
10:17:30.667 INFO gui.SDRTrunk - *******************************************************************
10:17:30.667 INFO gui.SDRTrunk -
10:17:30.668 INFO gui.SDRTrunk - Host CPU Cores: 24
10:17:30.668 INFO gui.SDRTrunk - Host Memory Total: 1073741824
10:17:30.668 INFO gui.SDRTrunk - Host Memory Max: 17179869184
10:17:30.668 INFO gui.SDRTrunk - Host Memory Free: 1052935504
10:17:30.682 INFO util.ThreadPool - Application thread pool created with [24] threads
10:17:30.682 INFO gui.SDRTrunk - Home path: /Users/chud/SDRTrunk
10:17:30.684 INFO p.SystemProperties - SystemProperties - loaded [/Users/chud/SDRTrunk/SDRTrunk.properties]
10:17:30.684 INFO p.SystemProperties - SystemProperties - application properties loaded [/Users/chud/SDRTrunk/SDRTrunk.properties]
10:17:30.691 INFO settings.SettingsManager - SettingsManager - loading settings file [/Users/chud/SDRTrunk/settings/settings.xml]
10:17:31.045 INFO source.mixer.MixerManager - loading system mixer devices
[LOADED] Input: Default Audio Device CHANNELS: [LEFT, RIGHT, MONO]
[LOADED] Output: Default Audio Device CHANNELS: [MONO, STEREO]
[LOADED] Output: Built-in Output CHANNELS: [MONO, STEREO]
[LOADED] Output: DisplayPort CHANNELS: [MONO, STEREO]
[LOADED] Output: DisplayPort CHANNELS: [MONO, STEREO]
[LOADED] Output: DisplayPort CHANNELS: [MONO, STEREO]
[LOADED] Output: Wireless Stereo Headset CHANNELS: [MONO, STEREO]
[LOADED] Input: Wireless Stereo Headset CHANNELS: [MONO]
[LOADED] Input: Soundflower (2ch) CHANNELS: [LEFT, RIGHT, MONO]
[LOADED] Output: Soundflower (2ch) CHANNELS: [MONO, STEREO]
[LOADED] Input: Soundflower (64ch) CHANNELS: [LEFT, RIGHT, MONO]
[LOADED] Output: Soundflower (64ch) CHANNELS: [MONO, STEREO]
[LOADED] Output: Instant On Sound Effects CHANNELS: [MONO, STEREO]
10:17:31.046 INFO s.r.RecordingSourceManager - RecordingSourceManager - discovered [0] recording configurations
10:17:31.092 INFO source.tuner.TunerManager - LibUSB API Version: 16777474
10:17:31.093 INFO source.tuner.TunerManager - LibUSB Version: 1.0.18.10866
10:17:31.093 INFO source.tuner.TunerManager - discovered [35] attached USB devices
10:17:32.634 INFO source.tuner.TunerManager - usb device [0BDA:2838] LOADED: RTL2832 SDR/R820T RTLSDR-0
10:17:34.164 INFO source.tuner.TunerManager - usb device [0BDA:2838] LOADED: RTL2832 SDR/R820T NESDR-2-1
10:17:35.691 INFO source.tuner.TunerManager - usb device [0BDA:2838] LOADED: RTL2832 SDR/R820T NESDR-1-1
10:17:37.212 INFO source.tuner.TunerManager - usb device [0BDA:2832] LOADED: RTL2832 SDR/R820T blue-0
10:17:40.922 INFO icon.IconManager - loading icons file [/Users/chud/SDRTrunk/settings/icons.xml]
10:17:41.112 INFO playlist.PlaylistManager - Attempting to load version 2 playlist file [/Users/chud/SDRTrunk/playlist/playlist_v2.xml]
10:17:41.477 INFO m.d.p.a.P25AudioModule - JMBE audio conversion library [JMBE Audio Conversion Library v0.3.3] successfully loaded - P25 audio will be available
10:17:41.499 INFO gui.SDRTrunk - starting main application gui
10:18:17.885 INFO record.RecorderManager - Removing idle recorder [SRC:3 ID:0C1B]
10:20:07.880 INFO record.RecorderManager - Removing idle recorder [SRC:2 ID:03E9]
These screenshots were taken before attempting to disable the active control channel

The text was updated successfully, but these errors were encountered: