Lockup issue #4


  • Defect
  • Waiting
Open
Assigned to _ForgeUser8217256
  • _ForgeUser6835820 created this issue Feb 24, 2012

    This is one of the most problematic plugin issues, as it has no error trace. But a while ago when I started using RB live, we had a few very rare lockups over the course of a 2 days. I then disabled about 5 recent plugins. Every day I've enabled one again, to narrow down this recent issue. Currently only RB is disabled, and we have had no lockups since, so I fear this plugin indeed was causing the issue, and thus has a bug where it can lockup the main thread.

  • _ForgeUser6835820 added the tags New Defect Feb 24, 2012
  • _ForgeUser8217256 posted a comment Mar 4, 2012

    Hm, this is indeed problematic. I believe it may be possible, but have no idea at all why it might happen :(.. or how to diagnose.

    This plugin has been running on another server (Solitude at Blocktopia) for some time (about a month), and I haven't heard of any major lock-up issues like this, but there was one report of something similar: http://www.reddit.com/r/cakesminerapocalypse/comments/pjgio/solituderadio_for_compasses_down/ . May or may not have been related to RadioBeacon however.

    RadioBeacon uses a periodic scheduled task to update the compass radios, I wonder if that may be causing the problem. It runs on the main thread (sync), for thread safety, unless an undocumented config option was set to run asynchronously (unsafely), but that option has since been removed.

    RadioBeacon contains very few unbounded loops, so I suspect an infinite loop is unlikely.

    I only use two while() loops:

            while(world.getBlockTypeIdAt(x, newTipY, z) == AntennaConf.fixedAntennaMaterial.getId()) {
                newTipY += 1;
            }
    
                do {
                    newTipY -= 1;
    
                    pieceType = world.getBlockTypeIdAt(x, newTipY, z);
                } while(!AntennaConf.isFixedBaseMaterial(pieceType) &&
                        pieceType != AntennaConf.fixedAntennaMaterial.getId() &&
                        newTipY > 0);
    

    and they both should terminate when reaching non-antenna blocks in the world. Not sure where to start..

    If you're still seeing this with 1.1.1, can you try with "verbose: true" and send me the complete server log? It'll be difficult to diagnose without any stack trace, but, maybe the verbose debugging output will provide some hints.


    Edited Mar 4, 2012
  • _ForgeUser8217256 removed a tag New Mar 4, 2012
  • _ForgeUser8217256 added a tag Waiting Mar 4, 2012

To post a comment, please login or register a new account.