Reported here: #12731
Any ideas?
Plenty.
Should I respond here or there?
Buh, there, please! I don't think rpoet-jh is here in Zulip.
Done.
For those reading or searching around here, this was the original question:
Start
gdcc/dataversewith JVM_ARGS containing a system property that has a space in the value.For example:
-Ddataverse.pid.providers=fake -Ddataverse.pid.default-provider=fake -Ddataverse.pid.fake.type=FAKE -Ddataverse.pid.fake.label="Fake DOI Provider"
* When does this issue occur?When using the docker container
gdcc/dataverse, if JVM_ARGS contains system properties that have spaces, the container fails to start. I suspect it is the way JVM_ARGS is being interpolated in one of the startup scripts in thegdcc/dataversecontainer.
Here's my answer:
- Please do not use JVM_ARGS with PID provider options. These options are already using MPCONFIG, so you can use any of the methods extensively described in the guides on how to set those (env vars, files, ...). Our Docker Compose files have some examples. That should eliminate any escaping business from 2. for good.
- The reason your quotes don't work are due to the fact how the variable is forwarded to the JVM. By the time the JVM receives the arguments, the quotes are gone - Bash has had them for lunch. So you'd need to escape them as
\"if you really want to stick with the JVM_ARGS way.
Hmm, in #12713 I'm still using JVM args, like this:
-Ddataverse.pid.dc1.type=datacite
-Ddataverse.pid.dc1.label=DataCite
I was careful not to add a space in the label!
So we should switch our PID config in our compose files from JVM args to MPConfig, right?
These:
Yes, absolutely switch them.
It might be easier at some point to just use a TOML file.
If someone has any funding left, happy to do an overhaul of the storage subsystem. Make it use MPCONFIG and cleanup tech debt. That is one of the last things we cannot use MPCONFIG with unfortunately.
Apart from the PID label, is there any other JVM arg that might want a space? :thinking:
Last updated: Oct 02 2026 at 18:51 UTC