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

dbptk browsing when parent record is missing #483

Open
Laurira opened this issue Jan 28, 2025 · 7 comments
Open

dbptk browsing when parent record is missing #483

Laurira opened this issue Jan 28, 2025 · 7 comments
Assignees

Comments

@Laurira
Copy link

Laurira commented Jan 28, 2025

When browsing between tables in the dbptk ui you can nicely move from one table to another. Very often in our database snapshots some of the parent keys are missing as the tables or rows were excluded due to the migration requirements.
When you click on such reference than dbptk ui tells you "a.b is null error".
In the log there is similarly few information
dbptke-1 | 2025-01-28 13:00:16.536 ERROR 1 --- [nio-8080-exec-4] Uncaught : [192.168.6.86] Uncaught Exception: (TypeError) : a.b is null
dbptke-1 |
dbptke-1 | java.lang.Throwable: null
dbptke-1 | at Unknown.$A(RowPanel.java:516)
dbptke-1 | at Unknown.cB(RowPanel.java:515)

So in such cases there should be more pretty error message so that user can understand it is data issue and not some bug with dbptk.

@SugaryLump
Copy link
Contributor

Could you provide some more details on how to replicate this error message? Namely, how was this SIARD loaded? Was it modified after loading? Are you using these "Is referenced by..." links:

Image

to navigate from one table to another, or are doing it another way?

Also, what version of DBPTK UI are you using?

@Laurira
Copy link
Author

Laurira commented Feb 3, 2025

No, I did not modified this siard after loading.

As you were asking about the version then now it is new version and the error message is changed:

Image

Version:
"git.build.user.email":"","git.build.host":"fv-az1019-640","git.dirty":"true","git.remote.origin.url":"https://github.com/keeps/dbptk-ui","git.closest.tag.name":"v2.8.0","git.commit.id.describe-short":"v2.8.0-1-dirty","git.commit.user.email":"[email protected]","git.commit.time":"2023-12-14T11:00:30+0000","git.commit.message.full":"Setting version 2.9.0-SNAPSHOT","git.build.version":"latest","git.commit.message.short":"Setting version 2.9.0-SNAPSHOT","git.commit.id.abbrev":"57afe32","git.branch":"master","git.build.user.name":"","git.closest.tag.commit.count":"1","git.commit.id.describe":"v2.8.0-1-g57afe32-dirty","git.commit.id":"57afe32fe2f3a34dabb345ca26b0c636b4cb5bab","git.tags":"","git.build.time":"2023-12-14T11:01:15+0000","git.commit.user.name":"Miguel Guimarães"}

@Laurira
Copy link
Author

Laurira commented Feb 3, 2025

the issue occurs even when you click on a record that has a foreign key to a record in the table that is missing

@SugaryLump
Copy link
Contributor

The version you've posted is not the latest (it's from late 2023). Make sure you've set the DBPTK's tag to latest in your docker compose file and that you've cleared the browser cache to load the latest version.json. If after that it's still showing you this older version, please try manually deleting the image using docker image rm so that the compose file forces a fresh pull of the tag.

@Laurira
Copy link
Author

Laurira commented Feb 4, 2025

I removed all conteiners from docker. Then "sudo docker compose up" and now the log is filled with errors:

.4.1/server
solr-1 | at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:665)
solr-1 | org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://172.18.0.2:8983/solr: Error CREATEing SolrCore 'dbv-activity-logs_shard1_replica_n1': Unable to create core [dbv-activity-logs_shard1_replica_n1] Caused by: Can't find resource 'schema.xml' in classpath or '/configs/dbv-activity-logs', cwd=/opt/solr-8.4.1/server
solr-1 | at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:665) ~[?:?]
solr-1 | at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:265) ~[?:?]
solr-1 | at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:248) ~[?:?]
solr-1 | at org.apache.solr.client.solrj.SolrClient.request(SolrClient.java:1290) ~[?:?]
solr-1 | at org.apache.solr.handler.component.HttpShardHandlerFactory$1.request(HttpShardHandlerFactory.java:176) ~[?:?]
solr-1 | at org.apache.solr.handler.component.HttpShardHandler.lambda$submit$0(HttpShardHandler.java:195) ~[?:?]
solr-1 | at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
solr-1 | at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
solr-1 | at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
solr-1 | at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:181) ~[metrics-core-4.0.5.jar:4.0.5]
solr-1 | at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:210) ~[?:?]
solr-1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
solr-1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
solr-1 | at java.lang.Thread.run(Unknown Source) [?:?]
solr-1 | 2025-02-04 10:09:57.054 ERROR (OverseerThreadFactory-9-thread-4-processing-n:172.18.0.2:8983_solr) [ ] o.a.s.c.a.c.OverseerCollectionMessageHandler Cleaning up collection [dbv-activity-logs].
solr-1 | 2025-02-04 10:09:57.061 INFO (OverseerThreadFactory-9-thread-4-processing-n:172.18.0.2:8983_solr) [ ] o.a.s.c.a.c.OverseerCollectionMessageHandler Executing Collection Cmd=action=UNLOAD&deleteInstanceDir=true&deleteDataDir=true&deleteMetricsHistory=true, asyncId=null
solr-1 | 2025-02-04 10:09:57.064 INFO (qtp457247584-21) [ x:dbv-activity-logs_shard1_replica_n1] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/cores params={deleteInstanceDir=true&deleteMetricsHistory=true&core=dbv-activity-logs_shard1_replica_n1&qt=/admin/cores&deleteDataDir=true&action=UNLOAD&wt=javabin&version=2} status=0 QTime=0
solr-1 | 2025-02-04 10:09:57.181 INFO (zkCallback-6-thread-1) [ ] o.a.s.c.c.ZkStateReader A cluster state change: [WatchedEvent state:SyncConnected type:NodeDeleted path:/collections/dbv-activity-logs/state.json] for collection [dbv-activity-logs] has occurred - updating... (live nodes size: [1])
solr-1 | 2025-02-04 10:09:57.219 INFO (OverseerThreadFactory-9-thread-4-processing-n:172.18.0.2:8983_solr) [ ] o.a.s.c.a.c.CreateCollectionCmd Cleaned up artifacts for failed create collection for [dbv-activity-logs]
solr-1 | 2025-02-04 10:09:57.221 ERROR (OverseerThreadFactory-9-thread-4-processing-n:172.18.0.2:8983_solr) [ ] o.a.s.c.a.c.OverseerCollectionMessageHandler Collection: dbv-activity-logs operation: create failed:org.apache.solr.common.SolrException: Underlying core creation failed while creating collection: dbv-activity-logs
solr-1 | at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:303)
solr-1 | at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:263)
solr-1 | at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:505)
solr-1 | at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:210)
solr-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
solr-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
solr-1 | at java.base/java.lang.Thread.run(Unknown Source)
solr-1 |
solr-1 | 2025-02-04 10:09:57.253 INFO (qtp457247584-24) [ ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/collections params={collection.configName=dbv-activity-logs&name=dbv-activity-logs&nrtReplicas=1&action=CREATE&numShards=1&wt=javabin&version=2} status=400 QTime=1825
dbptke-1 | 2025-02-04T10:09:57.256Z ERROR 1 --- [ main] c.d.c.s.i.f.CloudSolrClientFactory : Error creating collection dbv-activity-logs
dbptke-1 |
dbptke-1 | org.apache.solr.client.solrj.impl.BaseHttpSolrClient$RemoteSolrException: Error from server at http://172.18.0.2:8983/solr/admin/collections?action=CREATE&name=dbv-activity-logs&collection.configName=dbv-activity-logs&numShards=1&nrtReplicas=1&wt=javabin&version=2: Underlying core creation failed while creating collection: dbv-activity-logs
dbptke-1 | at org.apache.solr.client.solrj.impl.HttpSolrClientBase.processErrorsAndResponse(HttpSolrClientBase.java:276)
dbptke-1 | at org.apache.solr.client.solrj.impl.Http2SolrClient.processErrorsAndResponse(Http2SolrClient.java:571)
dbptke-1 | at org.apache.solr.client.solrj.impl.Http2SolrClient.request(Http2SolrClient.java:527)
dbptke-1 | at org.apache.solr.client.solrj.impl.LBSolrClient.doRequest(LBSolrClient.java:495)
dbptke-1 | at org.apache.solr.client.solrj.impl.LBSolrClient.request(LBSolrClient.java:458)
dbptke-1 | at org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1193)
dbptke-1 | at org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:892)
dbptke-1 | at org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:820)
dbptke-1 | at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:255)
dbptke-1 | at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:270)
dbptke-1 | at com.databasepreservation.common.server.index.factory.CloudSolrClientFactory.createCollection(CloudSolrClientFactory.java:188)
dbptke-1 | at com.databasepreservation.common.server.index.factory.SolrClientFactory.bootstrapDefaultCollections(SolrClientFactory.java:86)
dbptke-1 | at com.databasepreservation.common.server.index.factory.SolrClientFactory.init(SolrClientFactory.java:59)
dbptke-1 | at com.databasepreservation.common.server.index.factory.SolrClientFactory.get(SolrClientFactory.java:42)
dbptke-1 | at com.databasepreservation.common.server.ViewerFactory.instantiate(ViewerFactory.java:49)
dbptke-1 | at com.databasepreservation.common.server.ViewerFactory.getViewerConfiguration(ViewerFactory.java:102)
dbptke-1 | at com.databasepreservation.common.filter.OnOffFilter.isConfigAvailable(OnOffFilter.java:154)
dbptke-1 | at com.databasepreservation.common.filter.OnOffFilter.init(OnOffFilter.java:81)
dbptke-1 | at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:263)
dbptke-1 | at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)
dbptke-1 | at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4301)
dbptke-1 | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4916)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
dbptke-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
dbptke-1 | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
dbptke-1 | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
dbptke-1 | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
dbptke-1 | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
dbptke-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
dbptke-1 | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
dbptke-1 | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
dbptke-1 | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
dbptke-1 | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:105)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:499)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:218)
dbptke-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:188)
dbptke-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
dbptke-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:618)
dbptke-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
dbptke-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
dbptke-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
dbptke-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
dbptke-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
dbptke-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
dbptke-1 | at com.databasepreservation.DBVTK.main(DBVTK.java:46)
dbptke-1 | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
dbptke-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
dbptke-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102)
dbptke-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
dbptke-1 | at org.springframework.boot.loader.launch.WarLauncher.main(WarLauncher.java:53)
dbptke-1 |
dbptke-1 | 2025-02-04T10:09:57.260Z INFO 1 --- [ main] c.d.c.s.index.schema.SolrBootstrapUtils : Bootstrapping schemas
dbptke-1 | 2025-02-04T10:09:57.265Z ERROR 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Exception starting filter [CasSingleSignOutFilter]
dbptke-1 |
dbptke-1 | org.apache.solr.common.SolrException: Collection not found: dbv-searches
dbptke-1 | at org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:858)
dbptke-1 | at org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:820)
dbptke-1 | at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:255)
dbptke-1 | at com.databasepreservation.common.server.index.schema.SolrBootstrapUtils.getFields(SolrBootstrapUtils.java:38)
dbptke-1 | at com.databasepreservation.common.server.index.schema.SolrBootstrapUtils.bootstrapCollection(SolrBootstrapUtils.java:82)
dbptke-1 | at com.databasepreservation.common.server.index.schema.SolrBootstrapUtils.bootstrapSchemas(SolrBootstrapUtils.java:127)
dbptke-1 | at com.databasepreservation.common.server.index.factory.SolrClientFactory.init(SolrClientFactory.java:60)
dbptke-1 | at com.databasepreservation.common.server.index.factory.SolrClientFactory.get(SolrClientFactory.java:42)
dbptke-1 | at com.databasepreservation.common.server.ViewerFactory.instantiate(ViewerFactory.java:49)
dbptke-1 | at com.databasepreservation.common.server.ViewerFactory.getViewerConfiguration(ViewerFactory.java:102)
dbptke-1 | at com.databasepreservation.common.filter.OnOffFilter.isConfigAvailable(OnOffFilter.java:154)
dbptke-1 | at com.databasepreservation.common.filter.OnOffFilter.init(OnOffFilter.java:81)
dbptke-1 | at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:263)
dbptke-1 | at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)
dbptke-1 | at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4301)
dbptke-1 | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4916)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
dbptke-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
dbptke-1 | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
dbptke-1 | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
dbptke-1 | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
dbptke-1 | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
dbptke-1 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
dbptke-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
dbptke-1 | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
dbptke-1 | at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
dbptke-1 | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
dbptke-1 | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
dbptke-1 | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
dbptke-1 | at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126)
dbptke-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:105)

@SugaryLump
Copy link
Contributor

My mistake, the latest tag doesn't work with that compose yet. Could you please use the v2.10.0 tag instead?

@Laurira
Copy link
Author

Laurira commented Feb 5, 2025

Ok, now I got it working.

{"git.build.user.email":"","git.build.host":"fv-az1278-752","git.dirty":"false","git.remote.origin.url":"https://github.com/keeps/dbptk-ui","git.closest.tag.name":"v2.9.2","git.commit.id.describe-short":"v2.9.1-7","git.commit.user.email":"[email protected]","git.commit.time":"2024-10-16T15:51:44+0000","git.commit.message.full":"Setting version 2.10.0","git.build.version":"2.10.0","git.commit.message.short":"Setting version 2.10.0","git.commit.id.abbrev":"8793c51","git.branch":"8793c51cfff44352a2833830d5a3b0745f116aa8","git.build.user.name":"","git.closest.tag.commit.count":"923","git.commit.id.describe":"v2.9.1-7-g8793c51","git.commit.id":"8793c51cfff44352a2833830d5a3b0745f116aa8","git.tags":"v2.10.0","git.build.time":"2024-10-16T15:55:21+0000","git.commit.user.name":"Gabriel Barros"}

But the error is still the same:

Image

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

No branches or pull requests

3 participants