[Q&A] How to handle gem version conflicts in fluentd? #5194
Unanswered
RamHaridas
asked this question in
Q&A
Replies: 1 comment
-
|
Basically, due to Ruby's language specification, there is no built-in mechanism to isolate namespaces if they conflict within the same process. All loaded gems share the same runtime environment. Therefore, it is the responsibility of the plugin (or library) developers to implement their code within proper, unique namespaces to avoid such collisions. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What is a problem?
Scenario: Let's say that I have installed plugins at two separate paths
/path/to/defaultand/path/to/custom.pluginAat/path/to/defaultthat is dependent ongemAversion 1.5 (less than 2.0)pluginBat/path/to/customthat is dependent ongemAversion 2.3 (greater than 2.0)GEM_PATHenvironment variableGEM_PATH=/path/to/custom:/path/to/defaultpluginAandpluginBat runtime.But the default behavior of fluentd to load gems, would default it to go with the max version of
gemAwhich is 2.3 (as confirmed here #5158 by @Watson1978).Now, this may work well for
pluginBbut not forpluginAI wanted to understand that what steps should be taken to overcome this dependency conflict and how we can overcome it?
Describe the configuration of Fluentd
No response
Describe the logs of Fluentd
No response
Environment
Beta Was this translation helpful? Give feedback.
All reactions