Troubleshooting
On this page you will find common problems and their solutions.
Restoring a BPC backup from Karaf if the BPC core module does not start
The following example assumes that OpenSearch is accessible under https://localhost:9200 and the user admin with the password admin.
If this is not the case, please adjust the CURL calls accordingly.
# List current indices to:
# - to obtain the name of the current bpc-configuration index
# - to make it easier to determine the name of the restored index later (since it didn't exist at that point)
shell:exec curl -k -u admin:admin 'https://localhost:9200/_cat/indices'
# List existing backups/snapshots along with their configuration indices
shell:exec curl -k -u admin:admin 'https://localhost:9200/_cat/snapshots/bpc_backup' | grep -i configuration
# WARNING: Proceed only if you have a snapshot of the bpc-configuration index
# Delete the existing BPC configuration.
# This is the index with the alias bpc-configuration that currently has the status ‘open’.
# In the following example, the index was named: bpc-configuration_1666885827412
shell:exec curl -X DELETE -k -u admin:admin 'https://localhost:9200/bpc-configuration_1666885827412'
# Select and restore the appropriate snapshot based on the timestamp
# In the following example, the snapshot was named: snapshot-bpc-configuration-20221214-090546
shell:exec curl -X POST -k -u admin:admin 'https://localhost:9200/_snapshot/bpc_backup/snapshot-bpc-configuration-20221214-090546/_restore'
# List current indexes to find the name of the previously restored index
shell:exec curl -k -u admin:admin 'https://localhost:9200/_cat/indices'
# Set the alias ‘bpc-configuration’ for the restored index
# In this example, the restored index was named: bpc-configuration_1667975827693
shell:exec curl -X POST -H 'Content-Type: application/json' -k -u admin:admin 'https://localhost:9200/_aliases' -d '{ "actions": [ { "add": { "index": "bpc-configuration_1667975827693", "alias": "bpc-configuration" } } ] }'
See Backup & Restore and Downgrade Guide
Login fails
Passwords should be assigned without leading or trailing spaces (or other "whitespaces").
Inputs are "trimmed" during login, which means that these characters are lost and no successful login can take place.
Embedding the BPC via iFrame (I-Frame)
The header X-Frame-Options: sameorigin must be removed via HTTP header.
No further adjustments are necessary.
Recovery/restoration of OpenSearch
If OpenSearch has not been terminated properly or the file system has been damaged by a hardware/network defect, it should be restored from a backup or (if available) via the OpenSearch cluster.
Restoration in the OpenSearch cluster
If you are running OpenSearch in a cluster, it is possible to restore all data from other cluster nodes. If OpenSearch still starts properly, this is done fully automatically.
However, if central OpenSearch administration data is affected and OpenSearch no longer starts, the entire data folder (as configured via path.data ) must be deleted.
When OpenSearch is then started, OpenSearch connects to the cluster and automatically retrieves the data.
In this case, the node can be used again immediately, as data that is not yet available is provided internally via the cluster mechanism.
Restore from OpenSearch backup
The BPC creates periodic backups of its own configuration via the OpenSearch backup mechanism.
The storage location of the backup is configured at path.repo in the OpenSearch Config.
This folder contains backups that have a consistent state even if OpenSearch is terminated improperly.
If the OpenSearch data directory is permanently damaged, check for any existing backups there. This directory should then be removed (BPC/Karaf must not be running).
BPC/Karaf are then started.
A standard configuration of the BPC should now be created so that you can log in to the BPC via the local users (file etc/users.properties, if no other JAAS provider has been configured).
After logging in as a user with the role bpcAdmin, the list of existing backups can be viewed via the settings.
The status is restored by restoring the appropriate backup. The replication settings now reload the data into OpenSearch. This can take some time depending on the amount of data.
Service Wrapper does not restart Karaf
If the Service Wrapper is used to automatically start and also restart Karaf (e.g., because a memory problem has occurred), the following message may appear in karaf/data/log/wrapper.log:
ERROR | wrapper | 2019/01/24 01:50:45 | JVM appears hung: Timed out waiting for signal from JVM. ERROR | wrapper | 2019/01/24 01:50:45 | JVM did not exit on request, terminated STATUS | wrapper | 2019/01/24 01:50:46 | JVM exited in response to signal SIGKILL (9). ERROR | wrapper | 2019/01/24 01:50:46 | Unable to start a JVM STATUS | wrapper | 2019/01/24 01:50:46 | <-- Wrapper Stopped
The cause may be that the resources were not yet released when the JVM was started.
In this case, the following entry should be added to the file karaf/etc/karaf-wrapper.conf:
wrapper.restart.delay=30
Monitor: XLSX export does not work
If only very few packages are installed on a Linux server, the XLSX export may not work. After clicking on "Download", nothing happens. However, the following exception appears in the Karaf console:
15:34:24.160 ERROR [qtp1098107281-13455345] Problem with writing the data, class de.virtimo.bpc.module.monitor.resource.Monitor$3, ContentType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
15:34:24.163 WARN [qtp1098107281-13455345] Interceptor for {http://resource.monitor.module.bpc.virtimo.de/}Monitor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: java.lang.reflect.InvocationTargetException
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:399) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:275) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:122) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:84) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [64:org.apache.cxf.cxf-core:3.3.3]
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:90) [64:org.apache.cxf.cxf-core:3.3.3]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [64:org.apache.cxf.cxf-core:3.3.3]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [64:org.apache.cxf.cxf-core:3.3.3]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [36:javax.servlet-api:3.1.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [88:org.apache.cxf.cxf-rt-transports-http:3.3.3]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) [187:org.eclipse.jetty.servlet:9.4.18.v20190429]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623) [187:org.eclipse.jetty.servlet:9.4.18.v20190429]
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:214) [197:org.eclipse.jetty.websocket.server:9.4.18.v20190429]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) [187:org.eclipse.jetty.servlet:9.4.18.v20190429]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) [187:org.eclipse.jetty.servlet:9.4.18.v20190429]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [220:org.ops4j.pax.web.pax-web-jetty:7.2.10]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [184:org.eclipse.jetty.security:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [220:org.ops4j.pax.web.pax-web-jetty:7.2.10]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) [187:org.eclipse.jetty.servlet:9.4.18.v20190429]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [220:org.ops4j.pax.web.pax-web-jetty:7.2.10]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.Server.handle(Server.java:505) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) [186:org.eclipse.jetty.server:9.4.18.v20190429]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) [178:org.eclipse.jetty.io:9.4.18.v20190429]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [178:org.eclipse.jetty.io:9.4.18.v20190429]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [178:org.eclipse.jetty.io:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804) [189:org.eclipse.jetty.util:9.4.18.v20190429]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.InternalError: java.lang.reflect.InvocationTargetException
at sun.font.FontManagerFactory$1.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at sun.font.FontManagerFactory.getInstance(Unknown Source) ~[?:?]
at java.awt.Font.getFont2D(Unknown Source) ~[?:?]
at java.awt.Font.canDisplayUpTo(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.singleFont(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.<init>(Unknown Source) ~[?:?]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:274) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:249) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:234) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:506) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:488) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.MonitorDataXlsxExporter.writeSearchResponseToOutputStream(MonitorDataXlsxExporter.java:216) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.Monitor$3.write(Monitor.java:410) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.cxf.jaxrs.provider.BinaryDataProvider.writeTo(BinaryDataProvider.java:177) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.utils.JAXRSUtils.writeMessageBody(JAXRSUtils.java:1448) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:249) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
... 51 more
Caused by: java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
at sun.font.FontManagerFactory$1.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at sun.font.FontManagerFactory.getInstance(Unknown Source) ~[?:?]
at java.awt.Font.getFont2D(Unknown Source) ~[?:?]
at java.awt.Font.canDisplayUpTo(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.singleFont(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.<init>(Unknown Source) ~[?:?]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:274) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:249) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:234) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:506) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:488) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.MonitorDataXlsxExporter.writeSearchResponseToOutputStream(MonitorDataXlsxExporter.java:216) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.Monitor$3.write(Monitor.java:410) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.cxf.jaxrs.provider.BinaryDataProvider.writeTo(BinaryDataProvider.java:177) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.utils.JAXRSUtils.writeMessageBody(JAXRSUtils.java:1448) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:249) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
... 51 more
Caused by: java.lang.NullPointerException
at sun.awt.FontConfiguration.getVersion(Unknown Source) ~[?:?]
at sun.awt.FontConfiguration.readFontConfigFile(Unknown Source) ~[?:?]
at sun.awt.FontConfiguration.init(Unknown Source) ~[?:?]
at sun.awt.X11FontManager.createFontConfiguration(Unknown Source) ~[?:?]
at sun.font.SunFontManager$2.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at sun.font.SunFontManager.<init>(Unknown Source) ~[?:?]
at sun.awt.FcFontManager.<init>(Unknown Source) ~[?:?]
at sun.awt.X11FontManager.<init>(Unknown Source) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
at sun.font.FontManagerFactory$1.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at sun.font.FontManagerFactory.getInstance(Unknown Source) ~[?:?]
at java.awt.Font.getFont2D(Unknown Source) ~[?:?]
at java.awt.Font.canDisplayUpTo(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.singleFont(Unknown Source) ~[?:?]
at java.awt.font.TextLayout.<init>(Unknown Source) ~[?:?]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:274) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:249) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:234) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:506) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:488) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.MonitorDataXlsxExporter.writeSearchResponseToOutputStream(MonitorDataXlsxExporter.java:216) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at de.virtimo.bpc.module.monitor.resource.Monitor$3.write(Monitor.java:410) ~[239:de.virtimo.bpc-be-monitor:3.0.0.SNAPSHOT]
at org.apache.cxf.jaxrs.provider.BinaryDataProvider.writeTo(BinaryDataProvider.java:177) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.utils.JAXRSUtils.writeMessageBody(JAXRSUtils.java:1448) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:249) ~[75:org.apache.cxf.cxf-rt-frontend-jaxrs:3.3.3]
... 51 more
This case is caused by missing font resources, which must be installed manually:
-
Red Hat Linux (RHEL)
-
Ubuntu
yum install fontconfig urw-fonts
sudo apt install fontconfig fonts-urw-base35
Karaf must then be restarted.
Locked out when configuring an identity provider
You have locked yourself out due to a misconfiguration of the identity provider (IdP) or the IdP is not available. Then you can activate a fallback. See Forcing the local IdP as a fallback.