Kyrre created QPID-8708:
---------------------------

             Summary: Docker image copies links, not files
                 Key: QPID-8708
                 URL: https://issues.apache.org/jira/browse/QPID-8708
             Project: Qpid
          Issue Type: Bug
          Components: Broker-J
    Affects Versions: qpid-java-broker-9.2.1
            Reporter: Kyrre
         Attachments: qpid_store_setup.txt

In the Docker image for 9.2.1, the entrypoint.sh script, the copying of files 
has been changed to use the recursive (-r) switch. This, however. leads to 
issues if the original files are links, as is the case if you mount a 
Kubernetes ConfigMap, for example. The script will copy the link, but not the 
target of the link. This was not the case when each file was copied directly.

To further complicate the matter, the AbstractJsonConfigStore class uses 
Files.exists method in setup() (line 115). This call will return false on the 
path it is testing for, since what is there is a link, not a file, resulting in 
an exception. The stack trace is attached. 

In our case, we map a ConfigMap containing our initial config of the broker to 
the /qpid-broker-j/work-override directory, so that we start from a known base 
system for new pods. The resulting file structure will look like something 
similar to this:

 

 
{code:java}
/qpid-broker-j/work-override/..<timestamp>/config.json 
/qpid-broker-j/work-override/..data -> ..<timestamp>
/qpid-broker-j/work-override/config.json -> ..data/config.json{code}
The links are there to support updating the ConfigMap in Kubernetes and 
reflecting that back to the application, I suppose, although we don't use it at 
the moment. I have tried a few things to try to get the files mounted directly, 
but I have not found a way to make it work.

 

I suggest either reverting the recursive copying of the file, or to add the -L 
switch to cp, so that the targets of the links are copied, and not the links 
themselves.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to