Charts disappear in watch list
-
It's a very frustrating bug. I've tested this on 3 browsers on 2 different machines. Java is build 1.8.0_65-b17. After installing and loading my points from a previous install the instance works fine until the first restart. After that the charts are gone but the points continue to update and store data to the database (h2). I've already set and reset for good measure, my permissions to the entire mango folder. To add to the weirdness, if I open up the live graphing example and select a data point, it graphs just fine. Really nothing that I can think of squashes it.
-
@ordosays said in Charts disappear in watch list:
After installing and loading my points from a previous install the instance works fine until the first restart.
What do you mean "loading my points"?
@ordosays said in Charts disappear in watch list:
After that the charts are gone but the points continue to update and store data to the database (h2).
Is it only the charts on the watchlist page that are not displaying? How about the chart on the data point details page? Do the legacy charts work? Are there any browser console errors? Please see https://help.infiniteautomation.com/reporting-bugs/
How do you know that the points are storing data to the H2 database? Are you using our TSDB (mangoNoSqlDatabase module)?
@ordosays said in Charts disappear in watch list:
To add to the weirdness, if I open up the live graphing example and select a data point
That would indicate that the data source is polling the data correctly but its not being stored onto disk or something. What are the logging settings for the data points in question?
-
@jared-wiltshire Thanks for taking a look. In the javascript console I'm seeing 183 errors. . I can confirm that legacy charts do work in the legacy watch list (hover shows a chart but it's not auto updating). To clarify, by "loading my points" I mean importing from a saved .json file.
Viewing the datapoint details with the v3 interface gives a similar error that generates the "get" error in time with update frequency.
edit - browser is chrome. OS' are mac os and debian running on raspian. The result is the same on either os with the same points.
-
I deleted the data sources and re-entered the data sources and a few test points and the error persists.
-
- Check your ma.log file and post any errors in there which might correspond with this issue (text please, not images)
- Are you sure your core and modules are up to date?
-
I made sure to update all modules as soon as this started happening. no effect. Looking at the log, the only non-modbus error I'm seeing is this.
WARN 2018-05-17T06:38:35,788 (com.serotonin.m2m2.web.mvc.spring.security.MangoAccessDeniedHandler.handle:54) - Denying access to Mango resource / to IP 192.144.157.149 org.springframework.security.web.csrf.MissingCsrfTokenException: Could not verify the provided CSRF token because your session was not found. at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:114) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [jetty-security-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:426) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.Server.handle(Server.java:539) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65] WARN 2018-05-17T06:38:37,841 (com.serotonin.m2m2.web.mvc.spring.security.MangoAccessDeniedHandler.handle:54) - Denying access to Mango resource /wls-wsat/CoordinatorPortType to IP 192.144.157.149 org.springframework.security.web.csrf.MissingCsrfTokenException: Could not verify the provided CSRF token because your session was not found. at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:114) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) [spring-security-web-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263) [spring-web-4.3.16.RELEASE.jar:4.3.16.RELEASE] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [jetty-security-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [jetty-servlet-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:493) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.Server.handle(Server.java:539) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [jetty-io-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [jetty-util-9.3.23.v20180228.jar:9.3.23.v20180228] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
-
I did an experiment today. I dumped the full install of mango and rebuilt it from scratch. No imported settings, nothing. Made a new data source, it charted like a pro in the watch list. Post restart, same issue, same errors. The machine is a raspi running raspian that I'm administering over ssh. I'm honestly not sure what I'm doing wrong.
-
@ordosays said in Charts disappear in watch list:
I made sure to update all modules as soon as this started happening. no effect. Looking at the log, the only non-modbus error I'm seeing is this.
That is unrelated. Thanks for posting the log.
Can you answer my previous question -
How do you know that the points are storing data to the H2 database? Are you using our TSDB (mangoNoSqlDatabase module)?
@ordosays said in Charts disappear in watch list:
Post restart, same issue, same errors. The machine is a raspi running raspian that I'm administering over ssh. I'm honestly not sure what I'm doing wrong.
That is strange that a fresh install is playing up. Did you change anything in env.properties? Is it the free version of Mango?
-
I am not using the no Sql Database, I didn't see the need.
This is the free version of mango. I've used it in the past years back when it was m2m and was re-assessing it for the possibility of a brewery/distillery SCADA system for a couple of breweries. I remember it being pretty stable as long as you had enough memory on the board.
The only thing I changed in the env.properties was the access port (8080 to 80) but that seems unrelated since the error occurs on either port. The changes were done in an override, not to the original file.
-
Just a thought but do you have more than 300 data points? The free version might let you import them but after a restart it could be raising an event about a license violation. I am not sure what the REST api would do in this situation and you could be seeing the effects of this.
-
Having too many points for your license will not cause points not to chart.
One way to get a 400 BadRequest back is to request a rollup or simplify of an alphanumeric or image point, or request and unsupported rollup type in the date bar. So, can you try with the Date bar's rollup type set to 'None'?
-
@ordosays Can you please copy the full URL which is failing with the 400 Bad Request error and paste it here so I can see the full parameters (they are truncated in your image).
Also there should definitely be more messages in your ma.log (I would expect the error in the REST API code to be logged and also the client side error should have been sent to the backend and logged). Can you post the full log file or send it to me privately.
Can you please post your exact version numbers of -
- Core
- API module (mangoApi)
- UI module (mangoUI)
-
This issue has been "fixed". Quotes because I don't know why it exists. I noticed that the error was not duplicated in my root/admin account and experimented with deleting the offending user account and creating it fresh. This worked fine. I haven't tried this yet, but I'm worried that if I exported the users and imported them again, the error will re-emerge. So, the work around is to just manually re-input your users BUT if was to have dozens of users this would be impractical.
-
Hmm. Rereading the description, it sounds like maybe the websockets were still getting updates appropriately but for whatever reason the CSRF token was missing from the chart data request? Are you accessing it through a proxy?
Without some clearer direction and it being, "fixed" we're unlikely to keep thinking about it. If you notice it again, be sure to recount what you were doing in the system for some time prior. I would not expect the existence of users to be the affecting factor. If it were, restarting would be sufficient to blow out any caching, and user session information is not stored in the database.