Troubleshooting
On this page, you’ll find common problems and their solutions.
Restoring a BPC backup from Karaf when the BPC Core module fails to start
The following example assumes that OpenSearch is accessible at https://localhost:9200 and that the user admin has the password admin.
If this is not the case, please adjust the CURL commands accordingly.
# List current indexes to:
# - determine the name of the current bpc-configuration index
# - make it easier to identify 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 set without leading or trailing spaces (or other "whitespace").
During login, input is "trimmed," which causes these characters to be lost and prevents a successful login.
Embedding the BPC via iFrame (I-Frame)
The header X-Frame-Options: sameorigin must be removed via HTTP Headers.
No further adjustments are necessary.
Recovery from OpenSearch
If OpenSearch was not shut down properly or the file system was damaged due to a hardware or network failure, it should be restored from a backup or (if available) via the OpenSearch cluster.
Recovery in the OpenSearch Cluster
If you are running OpenSearch in a cluster, it is possible to recover all data from other cluster nodes. If OpenSearch still starts up properly, this process occurs fully automatically.
However, if central OpenSearch management data is affected and OpenSearch no longer starts, the entire data folder (as configured via path.data ) must be deleted.
When OpenSearch is subsequently started, it connects to the cluster and automatically retrieves the data.
In this case, the node is immediately operational again, as any missing data is provided internally via the cluster mechanism.
Restoration from an OpenSearch Backup
The BPC periodically creates backups of its own configuration using the OpenSearch backup mechanism.
The backup location is configured in the OpenSearch Config at path.repo.
This folder contains backups that remain in a consistent state even if OpenSearch is terminated improperly.
If the OpenSearch data directory is permanently corrupted, check for any backups that may be present there. This directory should then be removed (BPC/Karaf must not be running).
Afterward, start BPC/Karaf.
A default configuration should now be created by BPC so that you can log in to BPC using local users (file etc/users.properties, unless another JAAS provider has been configured).
After logging in as a user with the bpcAdmin role, you can view the list of available backups via the settings.
Restoring the appropriate backup will restore the system to its previous state. The replication settings will now reload the data into OpenSearch. Depending on the volume of data, this may take some time.
Service Wrapper Does Not Restart Karaf
If the Service Wrapper is used to automatically start and restart Karaf (e.g., because a memory problem occurred), the following message may appear in the 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
This may be caused by the resources not yet being released when the JVM starts.
In this case, the following entry should be added to the file karaf/etc/karaf-wrapper.conf:
wrapper.restart.delay=30
Monitor: XLSX export not working
If very few packages are installed on a Linux server, the XLSX export may not work. Nothing happens after clicking “Download.” In the Karaf console, however, the following exception appears:
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 issue 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 While Configuring an Identity Provider
You have locked yourself out of the identity provider (IdP) due to a misconfiguration, or the IdP is unavailable. In this case, you can enable a fallback. See Forcing the local IdP as a fallback.