linkedin / linkedin/dr-elephant
Cannot add or update a child row: a foreign key constraint fails
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.4k
- Forks
- 839
- PR merge metrics
- No merged PRs in 30d
Description
I have a lot of errors in /logs/elephant/dr_elephant.log and therefore I have no processed jobs in web UI
```
07-08-2019 17:00:41 WARN [dr-el-executor-thread-1] com.linkedin.drelephant.ElephantRunner : Add analytic job id [application_1562254467554_23925] into the retry list.
07-08-2019 17:00:41 INFO [dr-el-executor-thread-1] com.linkedin.drelephant.analysis.AnalyticJobGeneratorHadoop2 : Retry queue size is 11
07-08-2019 17:00:41 INFO [dr-el-executor-thread-1] com.linkedin.drelephant.ElephantRunner : Analyzing MAPREDUCE application_1562254467554_23937
07-08-2019 17:00:41 INFO [dr-el-executor-thread-1] com.linkedin.drelephant.util.Utils : Truncating [FETCHER] Content parser, INFO_RELIABLE,RSS,URLS_DISCOVERY,SITEMAPS_DISCOVERY,NAILS batches, (AutoPut m
ode) to 100 characters for application_1562254467554_23937
07-08-2019 17:00:41 INFO [dr-el-executor-thread-1] com.linkedin.drelephant.util.InfoExtractor : No Scheduler found for appid: application_1562254467554_23937
07-08-2019 17:00:41 ERROR [dr-el-executor-thread-1] com.linkedin.drelephant.ElephantRunner : ERROR executing DML bindLog[] error[Cannot add or update a child row: a foreign key constraint fails (`drele_pr
od`.`yarn_app_heuristic_result`, CONSTRAINT `yarn_app_heuristic_result_f1` FOREIGN KEY (`yarn_app_result_id`) REFERENCES `yarn_app_result` (`id`))]
07-08-2019 17:00:41 ERROR [dr-el-executor-thread-1] com.linkedin.drelephant.ElephantRunner : javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[Cannot add or update a child row: a
foreign key constraint fails (`drele_prod`.`yarn_app_heuristic_result`, CONSTRAINT `yarn_app_heuristic_result_f1` FOREIGN KEY (`yarn_app_result_id`) REFERENCES `yarn_app_result` (`id`))]
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.saveAssocManyDetails(DefaultPersister.java:851)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveMany(DefaultPersister.java:734)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveAssocMany(DefaultPersister.java:631)
at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:339)
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 com.linkedin.drelephant.ElephantRunner$ExecutorJob$1.run(ElephantRunner.java:399)
at com.avaje.ebeaninternal.server.core.DefaultServer.execute(DefaultServer.java:699)
at com.avaje.ebeaninternal.server.core.DefaultServer.execute(DefaultServer.java:693)
at com.avaje.ebean.Ebean.execute(Ebean.java:1207)
at com.linkedin.drelephant.ElephantRunner$ExecutorJob.run(ElephantRunner.java:397)
at com.linkedin.drelephant.priorityexecutor.RunnableWithPriority$1.run(RunnableWithPriority.java:36)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`drele_prod`.`yarn_app_heuristic_result`, CONSTRAINT `yarn_app_heuristic_result_f1` FOREIGN KEY (`yarn_app_result_id`) REFERENCES `yarn_app_result` (`id`))
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
at com.mysql.jdbc.Util.getInstance(Util.java:383)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2049)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2034)
at com.jolbox.bonecp.PreparedStatementHandle.executeUpdate(PreparedStatementHandle.java:205)
at com.avaje.ebeaninternal.server.type.DataBind.executeUpdate(DataBind.java:55)
at com.avaje.ebeaninternal.server.persist.dml.InsertHandler.execute(InsertHandler.java:134)
at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:86)
```
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at ElephantRunner.java around lines 397-399 and trace the Ebean persistence of yarn_app_result and yarn_app_heuristic_result. Inspect the logged foreign-key relationship and the surrounding job analysis flow; done means the constraint errors stop and processed jobs appear in the web UI.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, mysql
- Domain
- backend, database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100