-
Notifications
You must be signed in to change notification settings - Fork 967
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
StackOverflowError when OS has a lot of environment variables #700
Comments
havocp
added a commit
that referenced
this issue
Jul 24, 2020
This fixes #700 (Java is unhelpful and the Collections.unmodifiableList etc methods don't check whether the thing is already wrapped). These were just an assertion basically intended to find any accidental modification of these collections, so not essential.
@havocp, is there anything else that has to be done before accepting the pull request? I've checked a modified version from the pull request and it seems that the issue has been solved. |
Nothing else afaik, thanks for testing. Just not a lot of active maintenance happening here unfortunately so things are slow. |
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi!
Versions
config v1.4.0
Java 11.0.2
Description
I try to run my application on OS with about 700 environment variables. I have a config file with substitution
test = ${ENV_VARIABLE}
and next code to createConfig
:Also I limit thread stack size to 210k using
-Xss210k
, so the application fails with an error (I skipped the rest of stack trace because it is about 900 lines long)I noticed that if I remove the substitution or
.withFallback(ConfigFactory.systemEnvironment())
then the application starts.I debugged and found that in the ResolveContext each call to pushTrace or popTrace wraps
cycleMarkers
into anotherUnmodifiableSet
(because the constructor does it), even though it's already anUnmodifiableSet
.The text was updated successfully, but these errors were encountered: