linkedin / linkedin/dr-elephant

Auto tuning Duplicate entry '1000-1002' for key 'tuning_job_execution_param_set_u1']

Open
#421 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
1.4k
Forks
839
PR merge metrics
No merged PRs in 30d

Description

```
08-23-2018 01:34:43 INFO [play-akka.actor.default-dispatcher-13] com.linkedin.drelephant.tuning.AutoTuningAPIHelper : Optimization Algorithm PSO
08-23-2018 01:34:43 INFO [play-akka.actor.default-dispatcher-13] com.linkedin.drelephant.tuning.AutoTuningAPIHelper : Returning best parameter set as no parameter suggestion found for job: wordcountpig
08-23-2018 01:34:43 ERROR [play-akka.actor.default-dispatcher-13] controllers.Application : Exception parsing input:
javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[Duplicate entry '1000-1002' for key 'tuning_job_execution_param_set_u1']
at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:97)
at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.insert(DmlBeanPersister.java:57)
at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeInsertBean(DefaultPersistExecute.java:66)
at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:448)
at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:478)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:335)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveEnhanced(DefaultPersister.java:310)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveRecurse(DefaultPersister.java:280)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.save(DefaultPersister.java:248)
at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1568)
at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1558)
at com.avaje.ebean.Ebean.save(Ebean.java:453)
at play.db.ebean.Model.save(Model.java:91)
at models.TuningJobExecutionParamSet.save(TuningJobExecutionParamSet.java:67)
at com.linkedin.drelephant.tuning.AutoTuningAPIHelper.addNewTuningJobExecutionParamSet(AutoTuningAPIHelper.java:369)
at com.linkedin.drelephant.tuning.AutoTuningAPIHelper.getCurrentRunParameters(AutoTuningAPIHelper.java:343)
at controllers.Application.getCurrentRunParameters(Application.java:1006)
at controllers.Application.getCurrentRunParameters(Application.java:968)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$32$$anonfun$apply$32.apply(routes_routing.scala:445)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$32$$anonfun$apply$32.apply(routes_routing.scala:445)
at play.core.Router$HandlerInvoker$$anon$7$$anon$2.invocation(Router.scala:183)
at play.core.Router$Routes$$anon$1.invocation(Router.scala:377)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:56)
at play.GlobalSettings$1.call(GlobalSettings.java:64)
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91)
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90)
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:37)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at models.TuningJobExecutionParamSet.save and AutoTuningAPIHelper.addNewTuningJobExecutionParamSet, especially the reported lines 67 and 369, then trace the call from getCurrentRunParameters. Determine why the tuning_job_execution_param_set_u1 insert receives the duplicate pair shown in the exception. Done means the reported request no longer fails with this duplicate-entry error and the behavior is verified with a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.