Troubleshooting

Known Bugs and Solutions

Module Manager

  1. I made changes to a configuration and executed it, but it seems to be executing the configuration as it was before.
    1. Make sure you saved the configuration before executing it. There is a slight bug in the code to launch the configuration, but eventually it once again will be possible to run a configuration without saving it.
      UPDATE:This bug has been fixed. 5/18/2000
  2. I have an existing configuration file with many agents. After creating it, I changed the number/type of the ports on one of those agents, but the configuration file does not reflect those changes. Additionally, when I try to run the configuration, it gives me errors about the ports not being connected.
    1. To fix the problem you need to delete the changed agent in that configuration. Save the configuration and close Module Manager. Make sure the agent is recompiled. Restart Module Manager. Open the configuration, add the agent and reconnect its ports. Now run the configuration. Sometimes, you can skip one or more of these steps, but this method should work 99% of the time.
    2. If for some reason it doesn't, you'll have to rebuild the configuration from scratch. Sorry.
  3. I tried to open a configuration, but it gave me an exception.
  4. There are lots of different causes for this problem. The possible causes, symptoms, and solutions are as follows.

    1. You're using a save file format from a previous version of PB3A. Unless you want to write a tool for converting the formats, you'll just have to rebuild the configuration from scratch.
    2. This configuration has state saved to it, but the format of that state as given in the agent class has changed since this configuration was saved. This can be a real pain to solve. Once we move to using Java 2, I think we'll be able to properly overwrite some of the default serialization routines so that it would at least clear the state if it is invalid. But until then, you can try this(it really might not work and can mess you up if you're not careful about remembering what you've changed): change the state definition in the agent's class to the way it had been, open the configuration file, use state editor to clear the state of that agent, save the configuration file, change the state definition back to its new format, open the configuration file. If all else fails, rebuild the configuration from scratch.
    3. This configuration has state saved to it, but the classes implementing that state have changed. This is typically gives an InvalidClassCastException and says that the serialVersionUID's are different.
      The problem here is with those classes you used to implement the state. You'll need to override some of the default mechanisms for java's deserialization. The simplest of these is providing a serialVersionUID, but this tends to work only if the changes are very minor. For other solutions, I refer you to http://developer.java.sun.com/developer/TechTips/2000/tt0229.html

Coordinator

  1. Coordinator says it already has a configuration of this type running when I don't.
    Sometimes when there is an exception starting up a system, Coordinator thinks that the system started when it did not. The only solution is to start up a new Coordinator and use that one instead to run that configuration.

NetController

  1. Text keeps streaming on after the configuration has been shutdown.
    1. If the process is still listed at the top, use the KILL button to kill that process
    2. Try waiting. Sometimes the agents in a configuration just print information faster than the NetController can print it, so after it has stopped executing it still takes the NetController a while to finish printing everything
    3. If that doesn't work, close and restart the NetController. That will kill the NetExecutor that is running the configuration on that computer.
  2. I shut down a configuration, but the NetController still lists it as a running process
    1. Copy its name to the text area and push the kill button
    2. close the NetController and restart it. That kills the NetExecutor running the configuration.

Back


Copyright 2000, Carnegie Mellon University
This page written by Jonathan Jackson

Last modified: Thu May 18 19:50:05 EDT 2000