sandialabs / scot

Sandia Cyber Omni Tracker (SCOT)
http://getscot.sandia.gov
Other
245 stars 48 forks source link

Several UI refresh bugs #22

Closed ajaymills closed 8 years ago

ajaymills commented 9 years ago

Several different strange behaviours are described below.

On Windows, with IE 10, Chrome 45.0.2454, FF 40 -- When selecting alerts from the alert list, the detail pane at the bottom is always empty (for some reason nothing loads down there at all under windows). When I click the status button for an event, the button text doesn't change but it keeps accumulating small X's on its right side (not sure how else to describe that).

On Ubuntu, With Firefox 37--

The lower alert pane works here, unlike on Windows. However, certain kinds of changes do not cause a refresh of the UI--instead the whole page needs to be refreshed for the UI to update.

For example, when I click the grey button inside the "status" box for an event, it changes it from open to close logically (I can only verify this by refreshing the whole page), but the button itself doesn't show this change, and the status in the upper list doesn't change (until after refresh).

Or, also for an alert, when I delete an item in the lower detail pane using the trash can icon, I confirm the deletion, but nothing changes on the UI. When I refresh, that item disappears.

Another weird thing here is that even after I delete all the items in the lower pane, the corresponding event remains in the list of events, even after refreshing the page (maybe this part is by design?)

Edit: FYI the SCOT server is running on CentOS release 6.7, rather than Ubuntu. But I wouldn't expect that should impact the way the UI behaves...

toddbruner commented 9 years ago

I think that ActiveMQ may not be installed or working correctly on your server. The browser not autorefreshing is almost always a sign of ActiveMQ not working. You might want to look at the /var/log/scot.prod.log and see if there are any clues or error messages concerning ActiveMQ.

ajaymills commented 9 years ago

I revisited the installer "centos_installer.sh". It looks like on line 426 there is a statement that is apparently always false. I'm not sure how it should be, but I commented it out so the activemq installer code could run. Also line 333 there needs to be a space between the 1 and the ].

I ran it again and now it looks like I have activemq running, and I notice in the UI the status button is working, and the event has a new yellow "highlight" effect when I hit the button. There is still some wonkiness though: when I change the status of some events, it actually changes the status of that event and ANOTHER random event on the list. Is that possible running without activemq caused some corruption?

In activemq.scot.log I see nice neat startup messages:

ACTIVEMQ_HOME: /opt/sandia/webapps/activemq ACTIVEMQ_BASE: /opt/sandia/webapps/activemq ACTIVEMQ_CONF: /opt/sandia/webapps/activemq/conf ACTIVEMQ_DATA: /opt/sandia/webapps/activemq/data Loading message broker from: xbean:/opt/sandia/webapps/activemq/conf/scotamq.xml INFO | Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@2519a664: startup date [Fri Sep 18 16:35:34 CDT 2015]; root of context hierarchy INFO | PListStore:[/opt/sandia/webapps/activemq/data/localhost/tmp_storage] started INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[/opt/sandia/webapps/activemq/data/kahadb] INFO | Apache ActiveMQ 5.9-SNAPSHOT (localhost, ID:cyberbase3.ameslab.gov-50367-1442612136318-0:1) is starting INFO | Listening for connections at: tcp://cyberbase3.ameslab.gov:61616?maximumConnections=1000&wireformat.maxFrameSize=104857600 INFO | Connector openwire Started INFO | Listening for connections at: amqp://cyberbase3.ameslab.gov:5672?maximumConnections=1000&wireformat.maxFrameSize=104857600 INFO | Connector amqp Started INFO | Listening for connections at: stomp://cyberbase3.ameslab.gov:61613 INFO | Connector stomp Started INFO | Apache ActiveMQ 5.9-SNAPSHOT (localhost, ID:cyberbase3.ameslab.gov-50367-1442612136318-0:1) started INFO | For help or more information please see: http://activemq.apache.org WARN | Store limit is 102400 mb, whilst the data directory: /opt/sandia/webapps/activemq/data/kahadb only has 92980 mb of usable space INFO | Web console type: embedded INFO | ActiveMQ WebConsole initialized. INFO | Initializing Spring FrameworkServlet 'dispatcher' INFO | Connector vm://localhost Started

Then after clicking the status buttons, lots of this kind of thing:

ERROR | Error receiving message java.lang.IllegalStateException: IDLE,initial java.lang.IllegalStateException: IDLE,initial at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:408) at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:815) at org.apache.activemq.web.AjaxListener.onMessageAvailable(AjaxListener.java:72) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1371) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) ERROR | Error receiving message java.lang.IllegalStateException: DISPATCHED,initial java.lang.IllegalStateException: DISPATCHED,initial at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:408) at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:815) at org.apache.activemq.web.AjaxListener.onMessageAvailable(AjaxListener.java:72) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1371) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

UmiDevSec commented 8 years ago

I've seen this happen when the event id counter gets messed up somehow. The only time I've seen it is during testing when I'm manually mucking with the DB.

If you don't already have any data in the DB the easy way to fix this is to blow away the DB and re-install.

As far as I know the current UI doesn't support Internet Explorer 100%, but most of the functionality is there. Chrome and Firefox are the two tested browsers.

toddbruner commented 8 years ago

If you can't blow away the database, you can use the mongo client to look for duplicate alert_id or alertgroup_id. Once found, you can assign them non conflicting Id... But don't forget to update the is idgenerator collection so that nextid is set after all used ids