[RTFACT-14867] Nodes should not fail a restart if the Bootstrap bundle is present under an $NFS_MOUNT/ha-etc Created: 29/Aug/17  Updated: 19/Dec/17  Resolved: 14/Dec/17

Status: Resolved
Project: Artifactory Binary Repository
Component/s: HA, Installer
Affects Version/s: 5.5.0
Fix Version/s: 5.7.0

Type: Bug Priority: Blocker
Reporter: Andrei Komarov Assignee: Shay Bagants
Resolution: Fixed Votes: 1
Labels: None

Issue Links:
Relationship
Assigned QA: Gilad Kalchheim (Inactive)

 Description   

Artifactory version 5.2.1 presented the automatic deployment of the bootstrap bundle (BSB) for HA installations on the shared NFS/ha-etc.

If the BSB is not removed from the shared ha-etc, and a node (e.g. the primary node) was restarted (after a successful first startup and DB schema update, among other actions) it will attempt to redeploy the bootstrap bundle since it was present on the shared NFS/ha-etc location.

  • No UI message is presented about the existence of the node if you attempt to address the primary node
  • Possibly copy the bundle under the nodes' $ART_HOME/etc in order for it to be attempted to be redeployed (only) from nodes' home only if is the first startup as the behavior for deploying the BSB from the nodes' home exists.

$ tail -f -n 50 jfrog-access.bootstrap.log

2017-08-24 15:02:11 [jfrog-access] [INFO ] Found bootstrap bundle file: /clusterhome/ha-etc/bootstrap.bundle.tar.gz
2017-08-24 15:02:11 [jfrog-access] [INFO ] Deploying bootstrap bundle file to: /var/opt/jfrog/artifactory

$ tail -f -n 300 catalina.out

2017-08-24 15:02:10 [ARTIFACTORY] [INFO ] Starting Artifactory [artifactory.home=/var/opt/jfrog/artifactory].
2017-08-24 15:02:11,246 [art-init] [INFO ] (o.a.w.s.ArtifactoryContextConfigListener:280) -
                _   _  __           _                     _    _
     /\        | | (_)/ _|         | |                   | |  | |   /\
    /  \   _ __| |_ _| |_ __ _  ___| |_ ___  _ __ _   _  | |__| |  /  \
   / /\ \ | '__| __| |  _/ _` |/ __| __/ _ \| '__| | | | |  __  | / /\ \
  / ____ \| |  | |_| | || (_| | (__| || (_) | |  | |_| | | |  | |/ ____ \
 /_/    \_\_|   \__|_|_| \__,_|\___|\__\___/|_|   \__, | |_|  |_/_/    \_\
 Version:  5.4.6                                   __/ |
 Revision: 50406900                               |___/
 Artifactory Home: '/var/opt/jfrog/artifactory'
 Artifactory data dir: '/clusterhome/ha-data'
 HA Node ID: 'primary'

2017-08-24 15:02:11.253  INFO 783 --- [ost-startStop-1] o.j.a.s.startup.AccessHomeFinderImpl     : Using JFrog Access home at '/var/opt/jfrog/artifactory/access' resolved from: System property (Artifactory)
2017-08-24 15:02:11 [jfrog-access] [INFO ] Found bootstrap bundle file: /clusterhome/ha-etc/bootstrap.bundle.tar.gz
2017-08-24 15:02:11 [jfrog-access] [INFO ] Deploying bootstrap bundle file to: /var/opt/jfrog/artifactory
Aug 24, 2017 3:02:11 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deployment of configuration descriptor /opt/jfrog/artifactory/tomcat/conf/Catalina/localhost/artifactory.xml has finished in 2,949 ms
2017-08-24 15:02:11.458  WARN 783 --- [ost-startStop-1] o.s.boot.SpringApplication               : Error handling failed (ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3270a0b: startup date [Thu Jan 01 00:00:00 UTC 1970]; root of context hierarchy)
2017-08-24 15:02:11.488 ERROR 783 --- [ost-startStop-1] o.s.boot.SpringApplication               : Application startup failed

java.lang.IllegalStateException: Found conflicting files in the bootstrap bundle: /var/opt/jfrog/artifactory/access/etc/keys/private.key, /var/opt/jfrog/artifactory/access/etc/keys/root.crt, /var/opt/jfrog/artifactory/etc/db.properties, /var/opt/jfrog/artifactory/etc/security/communication.key
	at org.jfrog.access.server.startup.BootstrapBundleHandler.assertNoConflicts(BootstrapBundleHandler.java:82) ~[access-server-core-2.0.2.jar:na]
	at org.jfrog.access.server.startup.BootstrapBundleHandler.lambda$deployIfExists$0(BootstrapBundleHandler.java:58) ~[access-server-core-2.0.2.jar:na]
	at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_91]

Causing to Access to fail after the 60 timeout seconds:

2017-08-24 15:03:23,643 [art-init] [ERROR] (o.a.w.s.ArtifactoryContextConfigListener:97) - Application could not be initialized: Waiting for access server to respond timed-out after 60000 milliseconds.
java.lang.reflect.InvocationTargetException: null
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_91]
...
2017-08-24 15:03:24,479 [http-nio-8081-exec-3] [ERROR] (o.a.w.s.ArtifactoryFilter:188) - Artifactory failed to initialize: Context is null

Generated at Mon Jul 15 18:41:11 UTC 2019 using JIRA 7.6.3#76005-sha1:8a4e38d34af948780dbf52044e7aafb13a7cae58.