Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Processes not terminating before cleanup phase (Table does not exist error) #10

Open
ksonbol opened this issue Feb 13, 2018 · 0 comments

Comments

@ksonbol
Copy link

ksonbol commented Feb 13, 2018

I am trying to run the tool with the most basic configurations to see how it works, but I am faced with the following problem:
First, I am using MariaDB (I had some trouble using DerbyDB, so I decided to try this one first), with 2 slaves and one master, all run locally on the same machine. I generated the simple trace as explained in the Consistency Benchmark section of the README file.

Updates to the benchfoundry.properties file:
dbConnectorConfigFile:mariadb.properties
dbConnectorClass:de.tuberlin.ise.benchfoundry.connectors.impl.MariadbRelationalConnector
slaveFile:slaves.properties

The problem is basically that some processes from one phase (e.g, warmup phase) keep running even after cleanup phase finishes and thus raises errors.

First, I got these errors from the 8 default warmup threads at both slaves, with nothing at the master side:
10:38:59.634 [WARMUP-thread-7] INFO BusinessProcess - Current phase is CLEANUP or TERMINATED, process 31984 could not complete because it was interrupted while waiting to start executing. 10:38:59.634 [WARMUP-thread-1] INFO BusinessProcess - Current phase is CLEANUP or TERMINATED, process 31982 could not complete because it was interrupted while waiting to start executing. 10:38:59.635 [WARMUP-thread-2] INFO BusinessProcess - Current phase is CLEANUP or TERMINATED, process 31986 could not complete because it was interrupted while waiting to start executing.

(same error for the rest of threads)
...
10:38:59.649 [WARMUP-thread-2] ERROR BusinessProcess - An error occured, could not complete process pid=31986 java.sql.SQLException: execute() is called on closed connection at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.prolog(AbstractQueryProtocol.java:1194) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeQueryProlog(MariaDbStatement.java:175) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:240) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeQuery(MariaDbStatement.java:366) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.connectors.RelationalDbConnector.executeBusinessTransaction(RelationalDbConnector.java:346) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.scheduling.BusinessTransaction.execute(BusinessTransaction.java:120) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.scheduling.BusinessProcess.run(BusinessProcess.java:138) [BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_151] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_151] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]

(again the same error is repeated for the rest of the threads)

To keep things simpler, I updated the number of warmup threads to 1 in the de.tuberlin.ise.benchfoundry.tracegeneration.consistencybenchmark.StaticContent file:
public static final int noOfWarmupThreads = 1; ,
rebuilt the jar file and regenerated the consbench files.

Now, I am getting the following error, indicating that the experiment processes keep running after the cleanup phase has started, I think:
11:02:37.731 [EXPERIMENT-thread-1] ERROR BusinessProcess - An error occured, could not complete process pid=5 java.sql.SQLSyntaxErrorException: (conn:54) Table 'test.consbench' doesn't exist Query is : SELECT myfield FROM consbench WHERE mykey=1; at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:139) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.internal.util.ExceptionMapper.getException(ExceptionMapper.java:101) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.internal.util.ExceptionMapper.throwAndLogException(ExceptionMapper.java:77) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:224) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:253) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeQuery(MariaDbStatement.java:366) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.connectors.RelationalDbConnector.executeBusinessTransaction(RelationalDbConnector.java:356) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.scheduling.BusinessTransaction.execute(BusinessTransaction.java:120) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at de.tuberlin.ise.benchfoundry.scheduling.BusinessProcess.run(BusinessProcess.java:138) [BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_151] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_151] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151] Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Table 'test.consbench' doesn't exist Query is : SELECT myfield FROM consbench WHERE mykey=1; at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1098) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1030) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:985) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:129) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:243) ~[BenchFoundry-1.0-SNAPSHOT-jar-with-dependencies.jar:?] ... 9 more

(same error is repeated for experiment thread 0).

Finally, let me also copy the following lines from the all.log file to better understand when the error occurs (for the second case):

2018-02-13 11:01:36.960 [main] INFO de.tuberlin.ise.benchfoundry.connectors.RelationalDbConnector - Successfully established connection to database 'test'. 2018-02-13 11:01:36.962 [main] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase PRELOAD initialized. 2018-02-13 11:01:36.963 [PRELOAD] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase PRELOAD is ready to start. 2018-02-13 11:01:36.963 [PRELOAD] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase PRELOAD started. 2018-02-13 11:01:36.963 [PRELOAD] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Shutdown of scheduler for phase PRELOAD initiated. 2018-02-13 11:01:36.964 [PRELOAD] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase PRELOAD terminated (business processes may still be running). 2018-02-13 11:01:36.964 [PRELOAD] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - All processes of phase PRELOAD terminated. 2018-02-13 11:01:36.967 [main] INFO de.tuberlin.ise.benchfoundry.util.PhaseManager - Changed phase from PRELOAD to WARMUP 2018-02-13 11:01:36.968 [main] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase WARMUP initialized. 2018-02-13 11:01:36.968 [WARMUP] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase WARMUP is ready to start. 2018-02-13 11:01:36.969 [WARMUP] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase WARMUP started. 2018-02-13 11:01:36.990 [WARMUP] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Shutdown of scheduler for phase WARMUP initiated. 2018-02-13 11:01:36.990 [WARMUP] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - Scheduler for phase WARMUP terminated (business processes may still be running). 2018-02-13 11:01:37.015 [WARMUP] INFO de.tuberlin.ise.benchfoundry.scheduling.SequentialScheduler - All processes of phase WARMUP terminated. 2018-02-13 11:02:06.953 [Thrift] INFO de.tuberlin.ise.benchfoundry.rpc.BenchmarkSlaveServiceHandler - Received a proposed start time 11:02:36,926 for phase EXPERIMENT, response: ACCEPT 2018-02-13 11:02:06.955 [Thrift] INFO de.tuberlin.ise.benchfoundry.rpc.BenchmarkSlaveServiceHandler - Accepted commit for EXPERIMENT start timestamp: 11:02:36,926 2018-02-13 11:02:06.955 [Thrift] INFO de.tuberlin.ise.benchfoundry.util.Time - Start time for experiment phase has been set to 11:02:36,926 2018-02-13 11:02:35.422 [main] INFO de.tuberlin.ise.benchfoundry.scheduling.Scheduler - Scheduler for phase EXPERIMENT initialized. 2018-02-13 11:02:35.423 [EXPERIMENT] INFO de.tuberlin.ise.benchfoundry.scheduling.Scheduler - Scheduler for phase EXPERIMENT started. 2018-02-13 11:02:35.771 [EXPERIMENT] INFO de.tuberlin.ise.benchfoundry.scheduling.Scheduler - Shutdown of scheduler for phase EXPERIMENT initiated. 2018-02-13 11:02:35.772 [EXPERIMENT] INFO de.tuberlin.ise.benchfoundry.scheduling.Scheduler - Scheduler for phase EXPERIMENT terminated (business processes may still be running). 2018-02-13 11:02:36.924 [main] INFO de.tuberlin.ise.benchfoundry.util.PhaseManager - Changed phase from WARMUP to EXPERIMENT 2018-02-13 11:02:36.927 [LOG] INFO de.tuberlin.ise.benchfoundry.results.ResultLogger - ResultLogger started. 2018-02-13 11:02:37.732 [EXPERIMENT-thread-1] ERROR de.tuberlin.ise.benchfoundry.scheduling.BusinessProcess - An error occured, could not complete process pid=5 java.sql.SQLSyntaxErrorException: (conn:55) Table 'test.consbench' doesn't exist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant