Project

General

Profile

Actions

Incident #425

closed

Species Discovery Portlet loop infinitely when an error occurs in the service

Added by Massimiliano Assante almost 10 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Urgent
Category:
Other
Target version:
Start date:
Jul 23, 2015
Due date:
% Done:

100%

Estimated time:
Infrastructure:
Production

Description

Species Discovery Portlet loop infinitely when an error occurs in the service

Actions #1

Updated by Massimiliano Assante almost 10 years ago

  • Priority changed from High to Urgent

this issue must be resolved asap

Actions #2

Updated by Francesco Mangiacrapa almost 10 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 100

The problem is due to Result Set disposed. The exception is generated by ResultsetStream in case of reading timeout on (Datasource) data.

java.lang.RuntimeException: ResultSet disposed
at org.gcube.data.streams.adapters.ResultsetStream.delegateHasNext(ResultsetStream.java:126)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.data.streams.delegates.PipedStream.delegateHasNext(PipedStream.java:41)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.data.streams.delegates.PipedStream.delegateHasNext(PipedStream.java:41)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.portlets.user.speciesdiscovery.server.service.StreamIterator.hasNext(StreamIterator.java:29)
at org.gcube.portlets.user.speciesdiscovery.server.stream.ConversionIterator.hasNext(ConversionIterator.java:32)
at org.gcube.portlets.user.speciesdiscovery.server.stream.ConversionIterator.hasNext(ConversionIterator.java:32)
at org.gcube.portlets.user.speciesdiscovery.server.stream.AggregatorIterator.hasNext(AggregatorIterator.java:42)
at org.gcube.portlets.user.speciesdiscovery.server.session.Fetcher.run(Fetcher.java:70)
at java.lang.Thread.run(Thread.java:745)
2015-07-24 10:49:38,728 ERROR stream.ConversionIterator [Thread-114,next:54] %java.lang.RuntimeException: ResultSet disposed
at org.gcube.data.streams.adapters.ResultsetStream.delegateHasNext(ResultsetStream.java:126)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.data.streams.delegates.PipedStream.delegateHasNext(PipedStream.java:41)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.data.streams.delegates.PipedStream.delegateHasNext(PipedStream.java:41)
at org.gcube.data.streams.LookAheadStream.lookAhead(LookAheadStream.java:71)
at org.gcube.data.streams.LookAheadStream.hasNext(LookAheadStream.java:60)
at org.gcube.portlets.user.speciesdiscovery.server.service.StreamIterator.hasNext(StreamIterator.java:29)
at org.gcube.portlets.user.speciesdiscovery.server.stream.ConversionIterator.hasNext(ConversionIterator.java:32)
at org.gcube.portlets.user.speciesdiscovery.server.stream.ConversionIterator.hasNext(ConversionIterator.java:32)
at org.gcube.portlets.user.speciesdiscovery.server.stream.AggregatorIterator.hasNext(AggregatorIterator.java:42)
at org.gcube.portlets.user.speciesdiscovery.server.session.Fetcher.run(Fetcher.java:70)
at java.lang.Thread.run(Thread.java:745)

Sometimes the exception does not close the iterator properly generating all source.next as null and the portlet goes in loop because continues to read result set.
Therefore, I've added a policy of "tolerance" that: if two consecutive row fetched are null the stream is closed by the portlet (to avoid a loop)

Actions #3

Updated by Massimiliano Assante almost 10 years ago

  • Status changed from In Progress to Feedback

the patched portlet was hot deployed on production on bot i-marine and services portals, please test it and if everything's ok close the ticket

Actions #4

Updated by Francesco Mangiacrapa almost 10 years ago

  • Status changed from Feedback to Closed

The patched portlet seems work fine on i-marine and services.d4science

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 8.91 MB)