Play apps with a bundled start script split JAVA_OPTS unquoted, breaking multi-word values
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Domaine
- cloud, devops, infrastructure
Piste de recherche
This is the start-script launch path for Play apps (bin/<name> from sbt-native-packager), not the buildpack javaexec path used when no start script exists. Trace how JAVA_OPTS is passed into that script versus the no-start-script branch (play.core.server.NettyServer). Done means multi-word JAVA_OPTS (e.g. a quoted cron -D) survive as tokens, likely via -J<flag> as the issue suggests, without relying on unquoted ${java_opts[@]}. Related context is cloudfoundry/java-buildpack#1435.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Play apps packaged with a start script (bin/<name>, generated by sbt-native-packager, used whenever the app ships one — staged and dist Play 2.x builds) are launched directly via that script, not via the buildpack's shell-free javaexec launcher. javaexec is only used when no start script is present.
sbt-native-packager's own script template does:
if [[ "$JAVA_OPTS" != "" ]]; then
java_opts="${JAVA_OPTS}"
fi
execRunner "$java_cmd" ${java_opts[@]} ...
${java_opts[@]} is unquoted, so $JAVA_OPTS is word-split on whitespace (and glob-expanded). A value containing embedded spaces, e.g. a quoted cron expression (-DcronExpr="0 */7 * * * *"), splits into separate bare words; a bare word like */7 with no leading - can be misread as the main class by java, causing Could not find or load main class *.7 and a crash loop.
Command substitution in the value cannot occur here (it's plain variable expansion, not re-parsed source) — this is a launch-correctness issue, pre-existing and independent of #1432/#1435's javaexec fix, which only covers the no-start-script branch (play.core.server.NettyServer invocation).
Possible fix: route the start-script branch through a safe tokenizer too, passing JAVA_OPTS tokens as -J<flag> arguments (the convention sbt-native-packager scripts already support for exactly this purpose) instead of relying on the script reading $JAVA_OPTS directly.
Found while investigating cloudfoundry/java-buildpack#1435.
- Langage dominant
- Go
- Étoiles
- 452
- Forks
- 2.5k
- Merge moyen
- 1 j 2 h
- PR mergées (30 j)
- 23
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cloudfoundry/java-buildpack
-
v5.1.0 GA release planOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
cloudfoundry/java-buildpack#1423 ·
Les mainteneurs répondent en général sous 1 jour
-
Support configurable initial/minimum heap size relative to (/as a percentage of) calculated XmxOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
cloudfoundry/java-buildpack#1377 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
cloudfoundry/java-buildpack#1364 ·
Les mainteneurs répondent en général sous 1 jour
-
elastic-otel-java supportOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
cloudfoundry/java-buildpack#1342 · 1 commentaire · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
cloudfoundry/java-buildpack#1151 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cloudfoundry/java-buildpack
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 4 jours
-
bug needs-acceptance
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
vllm-project/semantic-router#4744 ·
Les mainteneurs répondent en général sous 1 jour
-
ScalingModifiers formula fails with "formula returned non-float result" when expression evaluates to an integerPeut-être pris @Sarthak-Pandey l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
kedacore/keda#8270 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug from-studio
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
esengine/DeepSeek-Reasonix#12355 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Gemini provider replaces a client-supplied `extra_content.google.thought_signature` with `skip_thought_signature_validator`, and writes the sentinel on every replayed function call (old turns, all models)Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour