I wasn't aware of this security issue. Do you have a link to the details? There's no ASF requirement for package names; it's really just a Java language convention, and especially not enforced for compatibility shims. Even Flume has some of those in the legacy sources.
I understand that it's very difficult to provide a compatibility layer. Maybe also a boring task. I'm just saying that without log4j1 backwards compatibility provided by log4j2, there will have to be a really critical reason to inflict this migration pain on Flume users -- something that simply can't be tolerated, even in a minor release, like a new and highly dangerous security bug. Without such a motivation, I don't see how this incompatible dependency change can be justified. Mike On Sat, Nov 24, 2018 at 3:20 PM Ralph Goers <ralph.go...@dslextreme.com> wrote: > > > On Nov 24, 2018, at 2:35 PM, Mike Percy <mpe...@apache.org> wrote: > > > > Flume has long had a policy of backwards compatibility with its own > > configuration files and people expect things to "just work" when > upgrading > > Flume. If log4j2 can't parse the log4j1 config file format then it's an > > incompatible upgrade and should not be done in a minor Flume release. > > > > If log4j2 wants to be a drop-in replacement for log4j1 then by default it > > should find and parse the traditional log4j.properties config files, at > > least as a fallback, rather than force users to convert to the new XML > > format before upgrading. > > That is simply not possible: > 1. Log4j 1 requires the use of fully qualified class names. The package > names log4j 1 used didn’t conform to ASF naming guidelines and don’t line > up with the package names used in Log4j2. > 2. Log4j 1 did not delineate between what was public and what was private > so there is code all over the place mucking with the internals of Log4j. > Log4j 2 implemented a compatibility layer by implementing the classes that > are being used but by and large they don’t actually do anything. > 3. The Appenders and Filters in Log4j 2 implement different interfaces and > cannot use components from Log4j 1. > 4. The Appenders in Log4j 2 are not identical with Log4j 1. In fact, many > people didn’t use the Rolling File Appender that shipped with Log4j but > used the one from Log4j extras. So it is hard to.know what Log4j 2 would > have needed to be compatible with. > > Many organizations (including mine) have security requirements that say > they must use software that is supported with security fixes. Log4j 1 has a > known security bug that will never be fixed as it reached end-of-life in > August of 2015. This means the use of Log4j 1 is not acceptable for any > security conscious organization. > > While folks have brought up this issue from time to time most seem to > adapt quite quickly to the change. Most of the issues are developers > wanting to know how to make something they were doing in Log4j 1 work in > Log4j 2. > > As you can imagine, since Log4j 2 has been GA now for 4 1/2 years and > Log4j 1 has been EOL for over 3, making the configuration compatible with > Log4j 1 is not a high priority. FWIW, there was an effort to do that a few > years ago, and while we were able to get some basic stuff to work making it > work in a general way wasn’t possible. > > Ralph > > > > > Mike > > > > On Fri, Nov 23, 2018 at 9:39 AM Ralph Goers <ralph.go...@dslextreme.com> > > wrote: > > > >> No, you are correct. However, requiring a change to logging > configuration > >> has never been considered a binary compatibility break in any project I > >> have ever worked on. > >> > >> Ralph > >> > >>> On Nov 23, 2018, at 10:05 AM, Ferenc Szabo <fsz...@cloudera.com.INVALID > > > >> wrote: > >>> > >>> As you mentioned, you have the freedom to use Log4j 2 and the same time > >> we > >>> have to keep the out of the box experience the same in a minor version. > >>> Users should be able to upgrade flume without changing any of their > >>> configurations. > >>> If they have a log4j.properties (Log4j 1) then they would not be able > to > >>> use it after the upgrade without changing it. > >>> > >>> Or am I missing a feature that would solve this case? > >>> > >>> On Fri, Nov 23, 2018 at 5:49 PM Ralph Goers < > ralph.go...@dslextreme.com> > >>> wrote: > >>> > >>>> Also, please put details in the Jira issues. It is much easier to find > >> out > >>>> why something was done by searching Jira later on then searching the > >>>> mailing list. > >>>> > >>>> Ralph > >>>> > >>>>> On Nov 23, 2018, at 9:47 AM, Ralph Goers <ralph.go...@dslextreme.com > > > >>>> wrote: > >>>>> > >>>>> I do not understand this at all. Log4j 2 provides runtime > compatibility > >>>> with Log4j 1. What is the problem that requires a revert? > >>>>> > >>>>> I have been running Flume with Log4j 2 since 1.6 so I don’t > understand > >>>> what the problem could possibly be. > >>>>> > >>>>> Ralph > >>>>> > >>>>>> On Nov 23, 2018, at 8:50 AM, Ferenc Szabo <szabofe...@apache.org> > >>>> wrote: > >>>>>> > >>>>>> Hi everyone > >>>>>> > >>>>>> I am about to branch the 1.9 release from trunk. > >>>>>> > >>>>>> On the 1.9 branch we will revert the following breaking changes: > >>>>>> - FLUME-2957. Remove Guava from our public API: > >>>>>> > >>>>>> > >>>> > >> > https://github.com/apache/flume/commit/7f85df9e473ee675d461d5b76650694c5a6c0088 > >>>>>> - part of FLUME-2050. Upgrade to Log4j 2.10.0: > >>>>>> as the new release should work with the previous configurations we > >> have > >>>>>> to release it with log4j 1.x > >>>>>> For the log4j2 upgrade, we will provide a guide, how to replace the > >> jars > >>>>>> if users would like to start using it in the 1.9 release on the wiki > >>>> page. > >>>>>> > >>>>>> Because of these changes the first release candidate might be > >> postponed > >>>> to > >>>>>> Monday. > >>>>>> > >>>>>> Regards, > >>>>>> Ferenc Szabo > >>>>>> > >>>>>> On Wed, Nov 7, 2018 at 5:04 PM ema...@cloudera.com < > >> ema...@cloudera.com > >>>>> > >>>>>> wrote: > >>>>>> > >>>>>>> Hi Ferenc, > >>>>>>> > >>>>>>> +1 > >>>>>>> I am working on FLUME-3281 Update to Kafka 2.0 client, should be > able > >>>> to > >>>>>>> finish it > >>>>>>> till the suggested deadline. > >>>>>>> I am also happy to do some reviews. > >>>>>>> > >>>>>>> Regards > >>>>>>> Endre > >>>>>>> > >>>>>>> On 2018/11/06 21:23:17, Ferenc Szabo <szabofe...@apache.org> > wrote: > >>>>>>>> Hello Flume Community, > >>>>>>>> > >>>>>>>> 1.8 was released about a year ago and since that quite a few bug > >>>> fixes, > >>>>>>>> improvements, features and documentation were introduced. > >>>>>>>> I would like to propose to publish the next minor release of Flume > >>>>>>>> to make these changes available to the users. > >>>>>>>> > >>>>>>>> I would be more than happy to be the Release Manager with the help > >> of > >>>>>>>> Denes Arvay for anything that requires PMC access - if both the > >>>> community > >>>>>>>> and he are > >>>>>>>> OK with it. > >>>>>>>> > >>>>>>>> Among others the following changes will be included in the next > >>>> release: > >>>>>>>> > >>>>>>>> Fixed bugs: > >>>>>>>> - FLUME-3117 Application can be dead loop when call System.exit() > in > >>>>>>>> methodconfigure > >>>>>>>> - FLUME-3237 Handling RuntimeExceptions coming from the JMS > provider > >>>> in > >>>>>>>> JMSSource > >>>>>>>> - FLUME-3201 Fix SyslogUtil to handle RFC3164 format in december > >>>>>>> correctly > >>>>>>>> - FLUME-3056 TestApplication hangs indefinitely > >>>>>>>> - FLUME-2976 Exception when JMS source tries to connect to a > >> Weblogic > >>>>>>>> server without authentication > >>>>>>>> - FLUME-3270 Close JMS resources in JMSMessageConsumer constructor > >> in > >>>>>>> case > >>>>>>>> of failure > >>>>>>>> - FLUME-3222 java.nio.file.NoSuchFileException thrown when files > are > >>>>>>> being > >>>>>>>> deleted from the TAILDIR source > >>>>>>>> - FLUME-2894 Flume components should stop in the correct order > >>>> (graceful > >>>>>>>> shutdown) > >>>>>>>> - FLUME-2973 Deadlock in hdfs sink > >>>>>>>> - FLUME-3278 Handling -D keystore parameters in Kafka components > >>>>>>>> - FLUME-3265 Cannot set batch-size for LoadBalancingRpcClient > >>>>>>>> > >>>>>>>> > >>>>>>>> Improvements: > >>>>>>>> - FLUME-3186 Make asyncHbaseClient configuration parameters > >> available > >>>>>>> from > >>>>>>>> flume config > >>>>>>>> - FLUME-3239 Do not rename files in SpoolDirectorySource > >>>>>>>> - FLUME-3227 Add Rate Limiter to StressSource > >>>>>>>> - FLUME-2050 Upgrade to log4j2 (when GA) > >>>>>>>> - FLUME-3246 Validate flume configuration to prevent larger source > >>>> batch > >>>>>>>> size than the channel transaction capacity > >>>>>>>> - FLUME-3050 add counters for error conditions and expose to > monitor > >>>> URL > >>>>>>>> - FLUME-3269 Support JSSE keystore/trustore -D system properties > >>>>>>>> - FLUME-3223 Flume HDFS Sink should retry close prior to > performing > >> a > >>>>>>>> recoverLease > >>>>>>>> - FLUME-3276 Components supporting SSL/TLS should be able to > specify > >>>>>>> cipher > >>>>>>>> suite list > >>>>>>>> - FLUME-3275 Components supporting SSL/TLS should be able to > specify > >>>>>>>> protocol list > >>>>>>>> > >>>>>>>> > >>>>>>>> New Features: > >>>>>>>> - FLUME-3142 Adding HBase2 sink > >>>>>>>> - FLUME-2442 Need an alternative to providing clear text passwords > >> in > >>>>>>> flume > >>>>>>>> config > >>>>>>>> > >>>>>>>> > >>>>>>>> There are 26 open tickets targeted for 1.9 in patch available > state: > >>>>>>>> https://s.apache.org/flume-1.9-target-tickets > >>>>>>>> > >>>>>>>> We also have a number of open pull requests on Github: > >>>>>>>> https://github.com/apache/flume/pulls > >>>>>>>> > >>>>>>>> There are a few tickets in progress that would be good to include > in > >>>> the > >>>>>>>> release so > >>>>>>>> I would say that we focus on reviewing and testing them in the > next > >> 2 > >>>>>>>> weeks. > >>>>>>>> > >>>>>>>> I would like to propose to target the 23rd of November for the > first > >>>>>>>> release candidate. > >>>>>>>> That would mean that the branch date would be a few days before > >> that. > >>>>>>>> Any significant code change should get in by that date. > >>>>>>>> > >>>>>>>> If nobody has any concerns then I am going to create an umbrella > >>>> ticket > >>>>>>> to > >>>>>>>> track the release process. > >>>>>>>> > >>>>>>>> Some movement can be expected in the related JIRA tickets. > >>>>>>>> > >>>>>>>> Kind regards, > >>>>>>>> Ferenc > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >>>> > >>>> > >> > >> > >> > > >