Easy Chart error (Comparison method violates its general contract)

Ignition v7.9.3
Java v8 update 131
Windows 10 64 bits
8 gb ram
Postgresql

I recently created a new project for test purpose. I put about 40 tags on an Easy chart in real time, a few hours later I get an error.

java.lang.Exception: Error running query:
TagHistory(paths=[prov:default:/tag:_Sim3_/Ramp/Ramp0, prov:default:/tag:_Sim3_/Ramp/Ramp1, prov:default:/tag:_Sim3_/Ramp/Ramp2, prov:default:/tag:_Sim3_/Ramp/Ramp3, prov:default:/tag:_Sim3_/Ramp/Ramp4, prov:default:/tag:_Sim3_/Ramp/Ramp5, prov:default:/tag:_Sim3_/Ramp/Ramp6, prov:default:/tag:_Sim3_/Ramp/Ramp7, prov:default:/tag:_Sim3_/Ramp/Ramp8, prov:default:/tag:_Sim3_/Ramp/Ramp9, prov:default:/tag:_Sim3_/Realistic/Realistic0, prov:default:/tag:_Sim3_/Realistic/Realistic1, prov:default:/tag:_Sim3_/Realistic/Realistic2, prov:default:/tag:_Sim3_/Realistic/Realistic3, prov:default:/tag:_Sim3_/Realistic/Realistic4, prov:default:/tag:_Sim3_/Realistic/Realistic5, prov:default:/tag:_Sim3_/Realistic/Realistic6, prov:default:/tag:_Sim3_/Realistic/Realistic7, prov:default:/tag:_Sim3_/Realistic/Realistic8, prov:default:/tag:_Sim3_/Realistic/Realistic9], start=Tue Jul 18 15:53:18 CLT 2017, end=Tue Jul 18 15:58:18 CLT 2017, flags=0)@1000ms
On: Pantalla 3.Root Container.Easy Chart
	at com.inductiveautomation.factorypmi.application.gateway.QueryManager$QueryExecutor.run(QueryManager.java:317)
	at java.lang.Thread.run(Unknown Source)
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Unexpected error running tag history query.
	at com.inductiveautomation.factorypmi.application.gateway.TagHistoryQuery.execute(TagHistoryQuery.java:41)
	at com.inductiveautomation.factorypmi.application.gateway.QueryManager$Query.execute(QueryManager.java:690)
	at com.inductiveautomation.factorypmi.application.gateway.QueryManager$Query.access$500(QueryManager.java:663)
	at com.inductiveautomation.factorypmi.application.gateway.QueryManager$QueryExecutor.run(QueryManager.java:314)
	... 1 more
Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
	at java.util.TimSort.mergeHi(Unknown Source)
	at java.util.TimSort.mergeAt(Unknown Source)
	at java.util.TimSort.mergeCollapse(Unknown Source)
	at java.util.TimSort.sort(Unknown Source)
	at java.util.Arrays.sort(Unknown Source)
	at java.util.List.sort(Unknown Source)
	at java.util.Collections.sort(Unknown Source)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.TagHistoryCache.maybeSortBuckets(TagHistoryCache.java:312)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.TagHistoryCache.createRoomFor(TagHistoryCache.java:154)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.TagHistoryCache.registerBucket(TagHistoryCache.java:275)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.SubCache.registerBucketData(SubCache.java:63)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.StandardCacheBucket.getData(StandardCacheBucket.java:212)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.SubCache$BucketHit.getData(SubCache.java:224)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.SubCache.getData(SubCache.java:160)
	at com.inductiveautomation.ignition.common.sqltags.history.cache.TagHistoryCache.query(TagHistoryCache.java:254)
	at com.inductiveautomation.factorypmi.application.gateway.TagHistoryQuery.execute(TagHistoryQuery.java:35)
	... 4 more

Ignition v7.9.3 (b2017060210)
Java: Oracle Corporation 1.8.0_131

This is a known issue that’s been fixed in 7.9.4 - it’s a pretty hard to replicate issue with the tag history cache.

I have had this problem for over a year. When do you think 7.9.4 will be released?

Should be within the next few weeks, though I can’t give a much better estimate than that.

Thanks. I eagerly await the fix and would love to know the root cause.

I donwloaded Ignition-7.9.4-beta1 and the error doesn’t show anymore trough all night long.

1 Like