Open desb42 opened 5 years ago
Oops, I forgot to give some example pages where this has occurred All the pages are namespace Category
Category:Clothing Category:Latin prefixes
Cool. Thanks for the example pages.
I took a look at it and think I may have found the issue. My guess is that https://en.wiktionary.org/wiki/Module:category_tree has multiple calls to pagesincategory
which locks the database when Load_ctg_or_null
(where the SQLITE_ERROR is occurring). See commit above.
If this doesn't resolve the issue, let me know, and I'll reinvestigate (maybe also post the log entry from one of the 11,000?) I'm finishing up dewiki now, and planning to go to enwiki in the next week or so, before continuing through enwiktionary and enwikisource afterwards. Thanks.
Three log entries
20190318_172854.753 failed to render extension: title=Category:Uralic languages excerpt=category=Uralic languages
namespace=
count=10
mode=ordered
ordermethod=categoryadd
order=descending err=[err 0] <org.sqlite.SQLiteException> [SQLITE_ERROR] SQL error or missing database (database link_db_1 is locked)
[err 1] <db> db.engine:exec failed: url=data source=g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.core.xowa;version=3; sql=DETACH link_db_1;
[trace]:
org.sqlite.core.DB.newSQLException(DB.java:909)
org.sqlite.core.DB.newSQLException(DB.java:921)
org.sqlite.core.DB.throwex(DB.java:886)
org.sqlite.core.NativeDB._exec_utf8(Native Method)
org.sqlite.core.NativeDB._exec(NativeDB.java:87)
org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
gplx.dbs.engines.Db_engine_sql_base.Exec_as_int(Db_engine_sql_base.java:48)
gplx.dbs.engines.sqlite.Sqlite_engine.Env_db_detach(Sqlite_engine.java:43)
gplx.dbs.Db_conn.Env_db_detach(Db_conn.java:36)
gplx.dbs.Db_attach_mgr.Detach(Db_attach_mgr.java:52)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Load_catlinks(Xoctg_catlink_loader.java:165)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Run(Xoctg_catlink_loader.java:26)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catpage_loader.Load_ctg_or_null(Xoctg_catpage_loader.java:65)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.Xoctg_catpage_mgr.Get_or_load_or_null(Xoctg_catpage_mgr.java:58)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages_in_ctg(Dpl_xnde.java:135)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages(Dpl_xnde.java:110)
gplx.xowa.xtns.dynamicPageList.Dpl_xnde.Xtn_parse(Dpl_xnde.java:28)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xnde_xtn(Xop_xnde_wkr.java:686)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xtag_bgn(Xop_xnde_wkr.java:322)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_tkn(Xop_xnde_wkr.java:223)
gplx.xowa.parsers.xndes.Xop_xnde_lxr.Make_tkn(Xop_xnde_lxr.java:23)
gplx.xowa.parsers.Xop_parser.Parse_to_src_end(Xop_parser.java:140)
gplx.xowa.parsers.Xop_parser.Parse(Xop_parser.java:122)
gplx.xowa.parsers.Xop_parser.Parse_wtxt_to_wdom(Xop_parser.java:111)
gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:106)
gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:98)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:130)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:189)
gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
java.lang.Thread.run(Thread.java:748)
20190318_172854.755 failed to render extension: title=Category:Clothing excerpt=category=Clothing
namespace=
count=10
mode=ordered
ordermethod=categoryadd
order=descending err=[err 0] <org.sqlite.SQLiteException> [SQLITE_ERROR] SQL error or missing database (database link_db_1 is already in use)
[err 1] <db> db.engine:exec failed: url=data source=g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.core.xowa;version=3; sql=ATTACH 'g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.link-db.001.xowa' AS link_db_1;
[trace]:
org.sqlite.core.DB.newSQLException(DB.java:909)
org.sqlite.core.DB.newSQLException(DB.java:921)
org.sqlite.core.DB.throwex(DB.java:886)
org.sqlite.core.NativeDB._exec_utf8(Native Method)
org.sqlite.core.NativeDB._exec(NativeDB.java:87)
org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
gplx.dbs.engines.Db_engine_sql_base.Exec_as_int(Db_engine_sql_base.java:48)
gplx.dbs.engines.sqlite.Sqlite_engine.Env_db_attach(Sqlite_engine.java:42)
gplx.dbs.Db_conn.Env_db_attach(Db_conn.java:35)
gplx.dbs.Db_attach_mgr.Attach(Db_attach_mgr.java:45)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Load_catlinks(Xoctg_catlink_loader.java:148)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Run(Xoctg_catlink_loader.java:26)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catpage_loader.Load_ctg_or_null(Xoctg_catpage_loader.java:65)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.Xoctg_catpage_mgr.Get_or_load_or_null(Xoctg_catpage_mgr.java:58)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages_in_ctg(Dpl_xnde.java:135)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages(Dpl_xnde.java:110)
gplx.xowa.xtns.dynamicPageList.Dpl_xnde.Xtn_parse(Dpl_xnde.java:28)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xnde_xtn(Xop_xnde_wkr.java:686)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xtag_bgn(Xop_xnde_wkr.java:322)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_tkn(Xop_xnde_wkr.java:223)
gplx.xowa.parsers.xndes.Xop_xnde_lxr.Make_tkn(Xop_xnde_lxr.java:23)
gplx.xowa.parsers.Xop_parser.Parse_to_src_end(Xop_parser.java:140)
gplx.xowa.parsers.Xop_parser.Parse(Xop_parser.java:122)
gplx.xowa.parsers.Xop_parser.Parse_wtxt_to_wdom(Xop_parser.java:111)
gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:106)
gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:98)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:130)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:189)
gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
java.lang.Thread.run(Thread.java:748)
20190318_172855.362 failed to render extension: title=Category:Karelian language excerpt=category=Karelian language
namespace=
count=10
mode=ordered
ordermethod=categoryadd
order=descending err=[err 0] <org.sqlite.SQLiteException> [SQLITE_ERROR] SQL error or missing database (database link_db_1 is locked)
[err 1] <db> db.engine:exec failed: url=data source=g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.core.xowa;version=3; sql=DETACH link_db_1;
[trace]:
org.sqlite.core.DB.newSQLException(DB.java:909)
org.sqlite.core.DB.newSQLException(DB.java:921)
org.sqlite.core.DB.throwex(DB.java:886)
org.sqlite.core.NativeDB._exec_utf8(Native Method)
org.sqlite.core.NativeDB._exec(NativeDB.java:87)
org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
gplx.dbs.engines.Db_engine_sql_base.Exec_as_int(Db_engine_sql_base.java:48)
gplx.dbs.engines.sqlite.Sqlite_engine.Env_db_detach(Sqlite_engine.java:43)
gplx.dbs.Db_conn.Env_db_detach(Db_conn.java:36)
gplx.dbs.Db_attach_mgr.Detach(Db_attach_mgr.java:52)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Load_catlinks(Xoctg_catlink_loader.java:165)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Run(Xoctg_catlink_loader.java:26)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catpage_loader.Load_ctg_or_null(Xoctg_catpage_loader.java:65)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.Xoctg_catpage_mgr.Get_or_load_or_null(Xoctg_catpage_mgr.java:58)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages_in_ctg(Dpl_xnde.java:135)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages(Dpl_xnde.java:110)
gplx.xowa.xtns.dynamicPageList.Dpl_xnde.Xtn_parse(Dpl_xnde.java:28)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xnde_xtn(Xop_xnde_wkr.java:686)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xtag_bgn(Xop_xnde_wkr.java:322)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_tkn(Xop_xnde_wkr.java:223)
gplx.xowa.parsers.xndes.Xop_xnde_lxr.Make_tkn(Xop_xnde_lxr.java:23)
gplx.xowa.parsers.Xop_parser.Parse_to_src_end(Xop_parser.java:140)
gplx.xowa.parsers.Xop_parser.Parse(Xop_parser.java:122)
gplx.xowa.parsers.Xop_parser.Parse_wtxt_to_wdom(Xop_parser.java:111)
gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:106)
gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:98)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:130)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:189)
gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
java.lang.Thread.run(Thread.java:748)
Cool. Thanks for the entries. They confirm that it's happening in Get_or_load_or_null
whic does have a synchronized block
I'm hoping the above commit fixes it. Thanks.
I have just completed another run of enwiktionary and I still get the same results Example:
20190330_215150.500 failed to render extension: title=Category:chr:Animals excerpt=category=chr:Animals
namespace=
count=10
mode=ordered
ordermethod=categoryadd
order=descending
err=[err 0] <org.sqlite.SQLiteException> [SQLITE_ERROR] SQL error or missing database (database link_db_1 is locked)
[err 1] <db> db.engine:exec failed: url=data source=g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.core.xowa;version=3; sql=DETACH link_db_1;
[trace]:
org.sqlite.core.DB.newSQLException(DB.java:909)
org.sqlite.core.DB.newSQLException(DB.java:921)
org.sqlite.core.DB.throwex(DB.java:886)
org.sqlite.core.NativeDB._exec_utf8(Native Method)
org.sqlite.core.NativeDB._exec(NativeDB.java:87)
org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
gplx.dbs.engines.Db_engine_sql_base.Exec_as_int(Db_engine_sql_base.java:48)
gplx.dbs.engines.sqlite.Sqlite_engine.Env_db_detach(Sqlite_engine.java:43)
gplx.dbs.Db_conn.Env_db_detach(Db_conn.java:36)
gplx.dbs.Db_attach_mgr.Detach(Db_attach_mgr.java:52)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Load_catlinks(Xoctg_catlink_loader.java:165)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Run(Xoctg_catlink_loader.java:26)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catpage_loader.Load_ctg_or_null(Xoctg_catpage_loader.java:65)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.Xoctg_catpage_mgr.Get_or_load_or_null(Xoctg_catpage_mgr.java:58)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages_in_ctg(Dpl_xnde.java:135)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages(Dpl_xnde.java:110)
gplx.xowa.xtns.dynamicPageList.Dpl_xnde.Xtn_parse(Dpl_xnde.java:28)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xnde_xtn(Xop_xnde_wkr.java:686)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xtag_bgn(Xop_xnde_wkr.java:322)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_tkn(Xop_xnde_wkr.java:223)
gplx.xowa.parsers.xndes.Xop_xnde_lxr.Make_tkn(Xop_xnde_lxr.java:23)
gplx.xowa.parsers.Xop_parser.Parse_to_src_end(Xop_parser.java:140)
gplx.xowa.parsers.Xop_parser.Parse(Xop_parser.java:122)
gplx.xowa.parsers.Xop_parser.Parse_wtxt_to_wdom(Xop_parser.java:111)
gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:106)
gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:99)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:131)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:190)
gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
java.lang.Thread.run(Thread.java:748)
20190330_215150.508 failed to render extension: title=Category:English nouns excerpt=category=English nouns
namespace=
count=10
mode=ordered
ordermethod=categoryadd
order=descending
err=[err 0] <org.sqlite.SQLiteException> [SQLITE_ERROR] SQL error or missing database (database link_db_1 is already in use)
[err 1] <db> db.engine:exec failed: url=data source=g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.core.xowa;version=3; sql=ATTACH 'g:\xowa\wiki\en.wiktionary.org\en.wiktionary.org-xtn.category.link-db.001.xowa' AS link_db_1;
[trace]:
org.sqlite.core.DB.newSQLException(DB.java:909)
org.sqlite.core.DB.newSQLException(DB.java:921)
org.sqlite.core.DB.throwex(DB.java:886)
org.sqlite.core.NativeDB._exec_utf8(Native Method)
org.sqlite.core.NativeDB._exec(NativeDB.java:87)
org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
gplx.dbs.engines.Db_engine_sql_base.Exec_as_int(Db_engine_sql_base.java:48)
gplx.dbs.engines.sqlite.Sqlite_engine.Env_db_attach(Sqlite_engine.java:42)
gplx.dbs.Db_conn.Env_db_attach(Db_conn.java:35)
gplx.dbs.Db_attach_mgr.Attach(Db_attach_mgr.java:45)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Load_catlinks(Xoctg_catlink_loader.java:148)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catlink_loader.Run(Xoctg_catlink_loader.java:26)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.dbs.Xoctg_catpage_loader.Load_ctg_or_null(Xoctg_catpage_loader.java:65)
gplx.xowa.addons.wikis.ctgs.htmls.catpages.Xoctg_catpage_mgr.Get_or_load_or_null(Xoctg_catpage_mgr.java:58)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages_in_ctg(Dpl_xnde.java:135)
gplx.xowa.xtns.dynamicPageList.Dpl_page_finder.Find_pages(Dpl_xnde.java:110)
gplx.xowa.xtns.dynamicPageList.Dpl_xnde.Xtn_parse(Dpl_xnde.java:28)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xnde_xtn(Xop_xnde_wkr.java:686)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_xtag_bgn(Xop_xnde_wkr.java:322)
gplx.xowa.parsers.xndes.Xop_xnde_wkr.Make_tkn(Xop_xnde_wkr.java:223)
gplx.xowa.parsers.xndes.Xop_xnde_lxr.Make_tkn(Xop_xnde_lxr.java:23)
gplx.xowa.parsers.Xop_parser.Parse_to_src_end(Xop_parser.java:140)
gplx.xowa.parsers.Xop_parser.Parse(Xop_parser.java:122)
gplx.xowa.parsers.Xop_parser.Parse_wtxt_to_wdom(Xop_parser.java:111)
gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:106)
gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:99)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:131)
gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:190)
gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
java.lang.Thread.run(Thread.java:748)
Ugh... Back to the drawing board....
I have just finished a build of enwiktionary (including an html build) and in examining the session log I have found what I suspect is a multi threading issue. The log has approx 11,000 entries of the above error These errors themselves have something to do with \
That is, the error is triggered by the attempt to process SQL for a dynamicpagelist
Two SQL errors have cropped up
If I look at these individual pages in xowa then no error occurs All these pages seem to share (I have only done a spot check) the same Module, Category_tree This builds two \
I think that there is some interference between threads (that is, some lack of synchonisation). I am not sure how to investigate further