manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aeham Abushwashi (JIRA)" <>
Subject [jira] [Commented] (CONNECTORS-1156) Can't shut down agents service when automatic ANALYZE TABLE is happening
Date Wed, 04 Feb 2015 16:37:35 GMT


Aeham Abushwashi commented on CONNECTORS-1156:

We may have hit a very similar issue recently though in a different method (JobManager#prepareFullScan).
jstack would mostly point to to the sleepFor method but from time to time would show activity
within the loop before going into sleepFor again. The fact that sleepFor was taking some time
suggests, in that case at least, that a DATABASE_TRANSACTION_ABORT was being caught causing
sleepAmt to be set to a non-zero value.

Is it worth introducing an upper retry limit, after which the exception is rethrown up the
call stack?

> Can't shut down agents service when automatic ANALYZE TABLE is happening
> ------------------------------------------------------------------------
>                 Key: CONNECTORS-1156
>                 URL:
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: Framework agents process
>    Affects Versions: ManifoldCF 1.8, ManifoldCF 2.0
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>             Fix For: ManifoldCF 1.9, ManifoldCF 2.1
> This was detected on MCF 1.8.
> The thread blocking shutdown had the following trace:
> {code}
> "Startup thread" daemon prio=10 tid=0x00007fe73012f000 nid=0x340b in Object.wait() [0x00007fe71f7f6000]
>    java.lang.Thread.State: WAITING (on object monitor)
>     at java.lang.Object.wait(Native Method)
>     at java.lang.Thread.join(
>     - locked <0x00000000e851a0b8> (a org.apache.manifoldcf.core.database.Database$ExecuteQueryThread)
>     at java.lang.Thread.join(
>     at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.finishUp(
>     at org.apache.manifoldcf.core.database.Database.executeViaThread(
>     at org.apache.manifoldcf.core.database.Database.executeUncachedQuery(
>     at org.apache.manifoldcf.core.database.Database$QueryCacheExecutor.create(
>     at org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(
>     at org.apache.manifoldcf.core.database.Database.executeQuery(
>     at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performModification(
>     at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.analyzeTableInternal(
>     at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.noteModificationsNoTransactions(
>     at org.apache.manifoldcf.core.database.Database.playbackModifications(
>     at org.apache.manifoldcf.core.database.Database.endTransaction(
>     at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.endTransaction(
>     at
>     at
> {code}
> This was after many minutes of waiting for the shutdown to take place, so clearly it's
looping in the sense that it keeps starting an ANALYZE, gets interrupted, and retries indefinitely.

This message was sent by Atlassian JIRA

View raw message