Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 414E1200B8F for ; Fri, 30 Sep 2016 20:20:48 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3B783160AD9; Fri, 30 Sep 2016 18:20:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 178CF160AB4 for ; Fri, 30 Sep 2016 20:20:45 +0200 (CEST) Received: (qmail 34158 invoked by uid 500); 30 Sep 2016 18:20:45 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 34148 invoked by uid 99); 30 Sep 2016 18:20:45 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Sep 2016 18:20:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 945CE180349 for ; Fri, 30 Sep 2016 18:20:44 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3.68 X-Spam-Level: *** X-Spam-Status: No, score=3.68 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, KAM_BADIPHTTP=2, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 6uHg2oxNiXLU for ; Fri, 30 Sep 2016 18:20:34 +0000 (UTC) Received: from mail-oi0-f46.google.com (mail-oi0-f46.google.com [209.85.218.46]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id C8C995F47D for ; Fri, 30 Sep 2016 18:20:33 +0000 (UTC) Received: by mail-oi0-f46.google.com with SMTP id r126so139609432oib.0 for ; Fri, 30 Sep 2016 11:20:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=83pkO3u/Ut9hyboJl+iNsVv47mpr1qQchMe8DOwPfg4=; b=OJLKRVYBJ++IJhJRbtxFouPYoSFoUrOF6HT36ZTGA9WwXu2nBXFkwh+DlvDSHhSgK0 AYVeRBqPWbz0wubHoLzUi5GSWJRHchlRQDlnknKtQviiEvm0V9yTj6j6GwOiA8CG6hcM ZeTuEpAH1wO298N4CZ0UaLAJC1qInNZqp0gzrv/zxyIXwqQtwKY8eBue0DsEgJgTDjVG xM3fymIAxokafsCkcE6NZ0rH25Zc9PdMX4VfhNhsmBi3lka2A/HI+JE3cSUCwJR4XbWv 3KdPYZZe5LtySj6RwTZfrMUXEvIUMkWyJICiMfwq0B4lLKJXBlOZchg1aeeAS0qirkkg aZMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=83pkO3u/Ut9hyboJl+iNsVv47mpr1qQchMe8DOwPfg4=; b=lsHQi2ZYy/AsE/qT9jN76KxQgJINv+aJW2Dv8uFuJnoNhrA/4Bcem95q9eGFWYgszw IKG8bFuABT26bK2a+6a9oJHpChfg/WpZ0D9BXJ1hjiO6CS3kVFPDldqHMoDO77kqV6Hx cIqyFG9WInjKHmKvHuabiPUlvJ9KaB5/DhxN2ZF1mUKlA5eemJA6jeyxmYqZESQADjAK rnURN2O4WLOxlRlBzlMTfNHAF3R1bVYrTToIcJoiixmEJei3t3lrsQSU/Lrmy54O3ssg 8pPX70j7eNpkmg4RTanmls+MY2q2ZqN377XGd0PovyJru2fw0ehzFVCVcj+4yQYmamu/ HWjQ== X-Gm-Message-State: AA6/9RnRFkKKuCCJFUMOH3HNuoDzZqJCNeuuc3cjYv/U20NS8Q3hggnpIpvMjke2oxGgjMN1VEgSbKmyTbUg5A== X-Received: by 10.157.48.77 with SMTP id w13mr6646123otd.204.1475259627092; Fri, 30 Sep 2016 11:20:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.44.161 with HTTP; Fri, 30 Sep 2016 11:20:25 -0700 (PDT) In-Reply-To: References: From: Gary Gregory Date: Fri, 30 Sep 2016 11:20:25 -0700 Message-ID: Subject: Re: [VOTE] Release Log4j 2.7-rc1 To: Log4J Developers List Content-Type: multipart/alternative; boundary=001a113d6a46064140053dbda633 archived-at: Fri, 30 Sep 2016 18:20:48 -0000 --001a113d6a46064140053dbda633 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory wrote: > Please wait to cut rc2, I am fixing a regression: > https://issues.apache.org/jira/browse/LOG4J2-1620 > Fixed. This looks like it needs addressing: https://issues.apache.org/jira/browse/LOG4J2-1618 Gary > > Gary > > On Thu, Sep 29, 2016 at 9:31 AM, Mikael St=C3=A5ldal > wrote: > >> I created JIRA issues for the Kafka and Flume appender timeout issues, >> and I have fixed both of them in master branch. >> https://issues.apache.org/jira/browse/LOG4J2-1624 >> https://issues.apache.org/jira/browse/LOG4J2-1625 >> >> I also created a JIRA issue for the JVM shutdown hook, but that not as >> easy to fix and I would not consider it a blocker for the 2.7 release. W= e >> can fix it for 2.7.1: >> https://issues.apache.org/jira/browse/LOG4J2-1623 >> >> I think we can go ahead now and make an 2.7-rc2 from the current state o= f >> master branch. >> >> >> On Thu, Sep 29, 2016 at 3:45 PM, Ralph Goers >> wrote: >> >>> The release is already delayed. So far we have two compatibility issues >>> that need to be fixed. Please create a Jira issue for the Flume Appende= r >>> and the JVM shutdown hook. Lets gets those fixed. And perhaps we should >>> stop doing things that aren=E2=80=99t directly focused on getting the r= elease out >>> as they may well introduce more problems. >>> >>> Ralph >>> >>> On Sep 29, 2016, at 5:16 AM, Mikael St=C3=A5ldal >>> wrote: >>> >>> I think that it is unfortunate that the close timeout is always zero >>> within the standard JVM shutdown hook (LoggerContext.java:275). I think >>> that should be configurable. However, I don't want to delay the release= for >>> that, so let's fix that after the 2.7 release. https://issues.apache >>> .org/jira/browse/LOG4J2-1623 >>> >>> However, I want to make sure that KafkaManager use the previous behavio= r >>> if the requested timeout is zero. I just made a commit to master with t= hat. >>> >>> It seems like FlumePersistentManager.releaseSub (the only other Manager >>> using releaseSub timeout) tries to do something similar: >>> >>> final long shutdownWaitMillis =3D requestedTimeoutMillis < 0 ? SHUTDOWN= _WAIT_MILLIS : requestedTimeoutMillis; >>> >>> But I thing the logic is wrong here. It should probably use >>> SHUTDOWN_WAIT_MILLIS if requestedTimeoutMillis is <=3D 0. This should >>> possibly be fixed before the release. >>> >>> >>> >>> On Wed, Sep 28, 2016 at 6:54 PM, Gary Gregory >>> wrote: >>> >>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael St=C3=A5ldal < >>>> mikael.staldal@magine.com> wrote: >>>> >>>>> Was this timeout thing implemented as part of any JIRA issue? >>>>> >>>> >>>> The high level ticket is: https://issues.apache.org/jira >>>> /browse/LOG4J2-1539 >>>> >>>> Gary >>>> >>>> >>>>> >>>>> On Wed, Sep 28, 2016 at 5:49 PM, Mikael St=C3=A5ldal < >>>>> mikael.staldal@magine.com> wrote: >>>>> >>>>>> To track this, I temporary added this to KafkaManager.releaseSub(): >>>>>> LOGGER.info("releaseSub: timeout=3D" + timeout + " " + >>>>>> timeUnit.toString(), new Throwable()); >>>>>> >>>>>> and I get: >>>>>> >>>>>> 2016-09-28 17:43:14,382 pool-1-thread-1 INFO releaseSub: timeout=3D0= MILLISECONDS java.lang.Throwable >>>>>> >>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.re= leaseSub(KafkaManager.java:60) >>>>>> at org.apache.logging.log4j.core.appender.AbstractManager.stop(Abst= ractManager.java:85) >>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.s= top(KafkaAppender.java:107) >>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.stop(= AbstractConfiguration.java:349) >>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.j= ava:329) >>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(AbstractLif= eCycle.java:127) >>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.= java:275) >>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegist= ry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.java:104) >>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegist= ry.run(DefaultShutdownCallbackRegistry.java:74) >>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>> >>>>>> the culprit is AbstractLifeCycle.stop() which uses a default timeout= of 0. >>>>>> >>>>>> >>>>>> On Wed, Sep 28, 2016 at 5:40 PM, Gary Gregory >>>>> > wrote: >>>>>> >>>>>>> It is used when you call LifeCycle2.stop(long, TimeUnit), like >>>>>>> stopping a LoggerContext or all of Log4j through the shutdown() met= hod. >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> On Wed, Sep 28, 2016 at 8:35 AM, Mikael St=C3=A5ldal < >>>>>>> mikael.staldal@magine.com> wrote: >>>>>>> >>>>>>>> I see that KafkaManager.releaseSub() is passed a timeout of 0 at >>>>>>>> runtime, which is not very useful. How is this actually supposed t= o be >>>>>>>> used? How can you make it get something else than 0? >>>>>>>> >>>>>>>> On Wed, Sep 28, 2016 at 5:33 PM, Mikael St=C3=A5ldal < >>>>>>>> mikael.staldal@magine.com> wrote: >>>>>>>> >>>>>>>>> We have already discussed this here: https://issues.apache.or >>>>>>>>> g/jira/browse/LOG4J2-1390 >>>>>>>>> >>>>>>>>> I don't think the release process is the right occasion to reopen >>>>>>>>> this discussion. Can we please keep the Kafka 0.8 compatibility f= or this >>>>>>>>> release, and then possibly reopen this discussion after the relea= se (and >>>>>>>>> possibly changing it for the 2.8 release)? >>>>>>>>> >>>>>>>>> On Wed, Sep 28, 2016 at 5:24 PM, Gary Gregory < >>>>>>>>> garydgregory@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael St=C3=A5ldal < >>>>>>>>>> mikael.staldal@magine.com> wrote: >>>>>>>>>> >>>>>>>>>>> Kafka server 0.8 is still in use, and newer Kafka clients canno= t >>>>>>>>>>> connect to older Kafka servers. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> There will always be users of old software. That does not mean >>>>>>>>>> that new versions of Log4j must support old software, especially= pre-1.0 >>>>>>>>>> software. >>>>>>>>>> >>>>>>>>>> Gary >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory < >>>>>>>>>>> garydgregory@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> I do not think it makes sense to support old versions that are >>>>>>>>>>>> not even 1.0. >>>>>>>>>>>> >>>>>>>>>>>> Gary >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Sep 28, 2016 at 7:42 AM, Mikael St=C3=A5ldal < >>>>>>>>>>>> mikael.staldal@magine.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I fixed the Kafka issue and pushed it to master branch. >>>>>>>>>>>>> >>>>>>>>>>>>> However, I have another concern, what timeout value is >>>>>>>>>>>>> actually passed in to AbstractManager.releaseSub ? >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 28, 2016 at 3:51 PM, Mikael St=C3=A5ldal < >>>>>>>>>>>>> mikael.staldal@magine.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> -1 since the Kafka appender now only works with Kafka client >>>>>>>>>>>>>> (and thus server) 0.9+, even though we agreed to keep compat= ibility with >>>>>>>>>>>>>> 0.8 for the time being: >>>>>>>>>>>>>> >>>>>>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1390 >>>>>>>>>>>>>> >>>>>>>>>>>>>> The problem appeared with commit 170469514b374eb5a5a33bde693= 6162fd608f097 >>>>>>>>>>>>>> by Gary in KafkaManager.java (method releaseSub). >>>>>>>>>>>>>> >>>>>>>>>>>>>> I get this error with kafka-clients 0.8.2.2: >>>>>>>>>>>>>> >>>>>>>>>>>>>> java.lang.NoSuchMethodError: org.apache.kafka.clients.produ >>>>>>>>>>>>>> cer.Producer.close(JLjava/util/concurrent/TimeUnit;)V >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java >>>>>>>>>>>>>> :61) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> appender.AbstractManager.stop(AbstractManager.java:85) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> appender.mom.kafka.KafkaAppender.stop(KafkaAppender.java:107= ) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> config.AbstractConfiguration.stop(AbstractConfiguration.java >>>>>>>>>>>>>> :349) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> LoggerContext.stop(LoggerContext.java:329) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> LoggerContext$1.run(LoggerContext.java:275) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> util.DefaultShutdownCallbackRegistry$RegisteredCancellable.r >>>>>>>>>>>>>> un(DefaultShutdownCallbackRegistry.java:104) >>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>> util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCall >>>>>>>>>>>>>> backRegistry.java:74) >>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers < >>>>>>>>>>>>>> ralph.goers@dslextreme.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> This is a vote to release Log4j 2.6.2, the next version of >>>>>>>>>>>>>>> the Log4j 2 project. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Please download, test, and cast your votes on the log4j >>>>>>>>>>>>>>> developers list. >>>>>>>>>>>>>>> [] +1, release the artifacts >>>>>>>>>>>>>>> [] -1, don't release because... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The vote will remain open for 72 hours (or more if >>>>>>>>>>>>>>> required). All votes are welcome and we encourage everyone = to test the >>>>>>>>>>>>>>> release, but only Logging PMC votes are =E2=80=9Cofficially= =E2=80=9D counted. As always, at >>>>>>>>>>>>>>> least 3 +1 votes and more positive than negative votes are = required. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Changes in this version include: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> New features: >>>>>>>>>>>>>>> o LOG4J2-1578: RoutingAppender can be configured with scri= pts. Add Script in a Routes element. >>>>>>>>>>>>>>> o LOG4J2-1597: Add a ScriptAppenderSelector to create an A= ppender specified by a Script. >>>>>>>>>>>>>>> o LOG4J2-1349: (GC) Added support for garbage-free ThreadC= ontext map. Disabled by default, users need to enable this explicitly. >>>>>>>>>>>>>>> o LOG4J2-1447: (GC) Changed LogEvent's internal data struc= ture for context data to be garbage-free. Added method LogEvent#getContextD= ata(), deprecated method #getContextMap(). >>>>>>>>>>>>>>> o LOG4J2-1010: Users can now inject context data from othe= r sources than ThreadContext. Values can be any Object, not just Strings. T= hanks to Mikael St=C3=A5ldal. >>>>>>>>>>>>>>> o LOG4J2-1568: Added support for java.util.concurrent.Link= edTransferQueue to AsyncAppender. >>>>>>>>>>>>>>> o LOG4J2-1430: Added optional support for Conversant Disru= ptorBlockingQueue in AsyncAppender. Thanks to John Cairns. >>>>>>>>>>>>>>> o LOG4J2-1439: Added optional support for JCTools MPSC bou= nded lock-free queue in AsyncAppender. Thanks to Anthony Maire. >>>>>>>>>>>>>>> o LOG4J2-1558: SocketAppender now supports IO buffering. >>>>>>>>>>>>>>> o LOG4J2-1557: Add a Builder for the SocketAppender (depre= cates factory method). >>>>>>>>>>>>>>> o LOG4J2-1609: Add a Builder to ServletAppender and deprec= ate factory method. >>>>>>>>>>>>>>> o LOG4J2-1553: AbstractManager now implements AutoCloseabl= e. >>>>>>>>>>>>>>> o LOG4J2-1528: Added ability to generate Log4j 2-style XML= configuration file from ConfigurationBuilder. >>>>>>>>>>>>>>> o LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11. >>>>>>>>>>>>>>> o LOG4J2-1512: Added options to exclude stack trace from J= SON, XML and YAML layouts. >>>>>>>>>>>>>>> o LOG4J2-1539: Added Core API Configurator.shutdown(Logger= Context, long, TimeUnit). >>>>>>>>>>>>>>> o LOG4J2-1501: FileAppender is now able to create files on= -demand. >>>>>>>>>>>>>>> o LOG4J2-1504: RollingFileAppender is now able to create f= iles on-demand. >>>>>>>>>>>>>>> o LOG4J2-1471: [PatternLayout] Add an ANSI option to %xThr= owable. >>>>>>>>>>>>>>> o LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext= now implements Closeable. >>>>>>>>>>>>>>> o LOG4J2-1458: [PatternLayout] Add an ANSI option to %mess= age. >>>>>>>>>>>>>>> o LOG4J2-1505: Create a Builder for the FileAppender plugi= n to facilitate adding attributes in the future. >>>>>>>>>>>>>>> o LOG4J2-1507: Allow Builders to be completely generic. >>>>>>>>>>>>>>> o LOG4J2-1508: Allow a Builder to subclass another Builder= . >>>>>>>>>>>>>>> o LOG4J2-1516: Add ThreadContextMap2 interface supporting = method putAll(Map). Thanks to Gary Gregory. >>>>>>>>>>>>>>> o LOG4J2-1519: Add ThreadContext.putAll(Map). >>>>>>>>>>>>>>> o LOG4J2-1520: Add JUnit Rule implementations to manage th= e thread context. >>>>>>>>>>>>>>> o LOG4J2-1547: The Core AbstractConfiguration now tracks i= ts LoggerContext and add Configuration.getLoggerContext(). >>>>>>>>>>>>>>> o LOG4J2-1540: The Core AbstractManager now tracks its Log= gerContext. >>>>>>>>>>>>>>> o LOG4J2-1577: Add a Builder to the RoutingAppender and de= precate factory method. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Fixed Bugs: >>>>>>>>>>>>>>> o LOG4J2-1611: Improved performance of context data inject= or for web applications to be on par with standalone applications. >>>>>>>>>>>>>>> o LOG4J2-1591: Introduced new interface LifeCycle2 with st= op(long,TimeUnit) method to avoid breaking backwards compatibility with new= Configurator.shutdown(LoggerContext, long, TimeUnit) API. >>>>>>>>>>>>>>> o LOG4J2-1590: Fixed issue with filters extending Abstract= Filter that did not override methods with unrolled varargs. >>>>>>>>>>>>>>> o LOG4J2-1583: Fixed scrambled log messages triggered by n= ested logging from toString() method of a logging parameter object. Thanks = to Larry West. >>>>>>>>>>>>>>> o LOG4J2-1259: Log4j threads are no longer leaking on Tomc= at shutdown. Thanks to Misagh Moayyed, Steffen Offermann. >>>>>>>>>>>>>>> o LOG4J2-1051: When starting on Google App Engine, Interpo= lator now suppresses the NoClassDefFoundError stack trace for the jvmrunar= gs lookup. Thanks to Lukasz Lenart. >>>>>>>>>>>>>>> o LOG4J2-1582: When initializing on platforms where JMX is= not available, Interpolator component no longer prints stack trace for war= ning messages. >>>>>>>>>>>>>>> o LOG4J2-1581: Unregistering JMX components no longer prin= ts a stack trace when the MBean has already been unregistered. >>>>>>>>>>>>>>> o LOG4J2-1313: Support Property values to be specified in = configuration as a value attribute as well as an element. Thanks to Philipp= Knobel, Leon Finker. >>>>>>>>>>>>>>> o LOG4J2-1575: (GC) LoggerConfig now stores configuration = properties in a List, not a Map to prevent creating temporary Iterator obje= cts. Added method LoggerConfig#getPropertyList(), deprecated method #getPro= perties(). >>>>>>>>>>>>>>> o LOG4J2-1457: Fixed class loader deadlock when using asyn= c logging and extended stack trace pattern. Thanks to Leon Finker. >>>>>>>>>>>>>>> o LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from = losing exceptions when a security manager is present. Thanks to Jason Tedor= . >>>>>>>>>>>>>>> o LOG4J2-1530: Fixed issue where LogEvent.getContextStack(= ) returned null. >>>>>>>>>>>>>>> o LOG4J2-1518: Prevent deadlock in Async Loggers when queu= e is full and logged Object's toString() logs another message. Thanks to Le= on Finker. >>>>>>>>>>>>>>> o LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in P= arameterizedMessage.formatTo for single-char or empty messages. Thanks to R= og=C3=A9rio Lecari=C3=A3o Leite. >>>>>>>>>>>>>>> o LOG4J2-1549: Fixed issue where AsyncLoggerContextSelecto= r+PropertiesConfigurationBuilder defaulted to includeLocation=3Dtrue. Thank= s to Jason Bedard. >>>>>>>>>>>>>>> o LOG4J2-1562: Prevent SocketAppender memory usage from gr= owing unbounded if it cannot connect to a server. >>>>>>>>>>>>>>> o LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to A= ndrey Plotkin. >>>>>>>>>>>>>>> o LOG4J2-1511: DynamicThresholdFilter filtered incorrectly= when params were passed as individual arguments instead of varargs. Thanks= to Srikanth Surukuntu. >>>>>>>>>>>>>>> o LOG4J2-1548: [CronTriggeringPolicy] ConfigurationSchedul= er scheduled the task infinitely after first fire. >>>>>>>>>>>>>>> o LOG4J2-1506: Log4j should not unregister JMX MBeans when= log4j2.disable.jmx property is true. Thanks to Johannes Schleger. >>>>>>>>>>>>>>> o LOG4J2-1490: Log4j2 should postpone creating log file un= til the appender actually receives an event. Thanks to Krzysztof Taborski. >>>>>>>>>>>>>>> o LOG4J2-1320: Support loading custom plugins from jar fil= es and directories whose classpath entries use the "vfs" URL protocol. Than= ks to Paresh Varke, Pierrick Hymbert. >>>>>>>>>>>>>>> o LOG4J2-1541: Fix file handle resource leak in XmlConfigu= ration.XmlConfiguration(ConfigurationSource). >>>>>>>>>>>>>>> o LOG4J2-1538: Prevent NPE when dynamically removing filte= rs. Thanks to Igor Karpov. >>>>>>>>>>>>>>> o LOG4J2-1532: Attributes were not merged properly in comp= osite configurations. >>>>>>>>>>>>>>> o LOG4J2-1529: Attributes were not merged properly in comp= osite configurations. Thanks to Sridevi Narra. >>>>>>>>>>>>>>> o LOG4J2-1527: Prevent NPE in RingBufferLogEvent.getFormat= tedMessage() when used in web applications. Thanks to Jose Leon. >>>>>>>>>>>>>>> o LOG4J2-905: Added ability to disable (date) lookup compl= etely for compatibility with other libraries like Camel. Thanks to Moritz L= =C3=B6ser. >>>>>>>>>>>>>>> o LOG4J2-1526: Added support for setting StatusLogger dest= ination in ConfigurationBuilder. >>>>>>>>>>>>>>> o LOG4J2-1448: Allow comma separated agents, host list to = be passed to FlumeAppender. Thanks to Keith Laban. >>>>>>>>>>>>>>> o LOG4J2-1500: Merging configurations failed with an NPE w= hen comparing Nodes with different attributes. Thanks to Jose Leon. >>>>>>>>>>>>>>> o LOG4J2-1482: Fixed improper header in CsvParameterLayout= . Thanks to Sumit Singhal. >>>>>>>>>>>>>>> o LOG4J2-1199: Documented that JVM Input Arguments Lookup = (JMX) is not available on Google App Engine. >>>>>>>>>>>>>>> o LOG4J2-1438: (GC) Added method getParameter() to ObjectM= essage (and ReusableObjectMessage). >>>>>>>>>>>>>>> o LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern= with a period '.' separator for milliseconds is now garbage free. Thanks t= o Richard Zschech. >>>>>>>>>>>>>>> o LOG4J2-1489: (GC) Fixed %date conversion patterns with a= timezone parameter are now garbage free. Thanks to Richard Zschech. >>>>>>>>>>>>>>> o LOG4J2-1279: Prevent NullPointerException in FastDatePar= ser$TimeZoneStrategy. Thanks to Tony Baines. >>>>>>>>>>>>>>> o LOG4J2-1341: (GC) HighlightConverter and StyleConverter = are now GC-free. Thanks to Richard Zschech. >>>>>>>>>>>>>>> o LOG4J2-1467: [OSGi] Fixed missing import package. Thanks= to Ralf, Gary Gregory. >>>>>>>>>>>>>>> o LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest= files. Thanks to Roland Weiglhofer. >>>>>>>>>>>>>>> o LOG4J2-1313: Properties declared in configuration can no= w have their value either in the element body or in an attribute named "val= ue". Thanks to Philipp Knobel. >>>>>>>>>>>>>>> o LOG4J2-1235: org.apache.logging.log4j.core.appender.rout= ing.IdlePurgePolicy was not working correctly. Thanks to Niranjan Rao, Sasc= ha Scholz, Aleksey Zvolinsky. >>>>>>>>>>>>>>> o LOG4J2-1502: Fixed issue where CsvParameterLayout and Cs= vLogEventLayout inserted NUL characters if data starts with {, (, [ or " Th= anks to Sumit Singhal. >>>>>>>>>>>>>>> o LOG4J2-1573: Layout is no longer optional. Thanks to Ste= ffen Offermann. >>>>>>>>>>>>>>> o LOG4J2-1608: ServletAppender does not provide throwable = object to ServletContext. >>>>>>>>>>>>>>> o LOG4J2-1599: Prevent potential NPE in org.apache.logging= .log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int= , Object[], int, int[]). >>>>>>>>>>>>>>> o LOG4J2-1600: Prevent potential NPE due to org.apache.log= ging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[],= String, boolean, boolean, Configuration). >>>>>>>>>>>>>>> o LOG4J2-1601: Prevent potential NPE due to org.apache.log= ging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript,= PatternMatch[], String, boolean, boolean, Configuration). >>>>>>>>>>>>>>> o LOG4J2-1602: Prevent potential NPE in org.apache.logging= .log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when obje= ct is null. >>>>>>>>>>>>>>> o LOG4J2-1603: Redo hashCode() and equals() methods in org= .apache.logging.log4j.core.net.ssl classes. >>>>>>>>>>>>>>> o LOG4J2-1610: Add targetNamespace to log4j-config.xsd. Gi= tHub #43. Thanks to Shubhankar. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Changes: >>>>>>>>>>>>>>> o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thank= s to Colin Hillman. >>>>>>>>>>>>>>> o LOG4J2-1574: Allow the RollingFileAppender to use defaul= t pattern layout. >>>>>>>>>>>>>>> o LOG4J2-1556: Custom Log4j threads now extend Log4jThread= . >>>>>>>>>>>>>>> o LOG4J2-1605: Improve error messages for TcpSocketServer = and UdpSocketServer. >>>>>>>>>>>>>>> o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0. >>>>>>>>>>>>>>> o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1. >>>>>>>>>>>>>>> o LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2. >>>>>>>>>>>>>>> o LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3. >>>>>>>>>>>>>>> o LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5. >>>>>>>>>>>>>>> o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10.0= .0. >>>>>>>>>>>>>>> o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to 0.10.= 0.1. >>>>>>>>>>>>>>> o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to 5.= 13.4. >>>>>>>>>>>>>>> o LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to 5.= 14.0. >>>>>>>>>>>>>>> o LOG4J2-1543: Removed deprecated Core API org.apache.logg= ing.log4j.core.util.Constants.UTF_8. >>>>>>>>>>>>>>> o LOG4J2-1544: Removed deprecated Core API org.apache.logg= ing.log4j.core.util.Assert.requireNonNull(T, String). >>>>>>>>>>>>>>> o LOG4J2-1545: Removed deprecated Web API org.apache.loggi= ng.log4j.web.WebLookup.getServletContext(). >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Tag: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> a) for a new copy do "git clone https://git-wip-us.apache.= org/repos/asf/logging-log4j2.git" and then "git checkout tags/log4j-2.7-rc1= =E2=80=9D >>>>>>>>>>>>>>> b) for an existing working copy to =E2=80=9Cgit pull=E2=80= =9D and then =E2=80=9Cgit checkout tags/log4j-2.7-rc1=E2=80=9D >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Web Site: = http://rgoers.github.io/log4j2-site/index.html >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Artifacts: https://repository.apache.org/content/repositori= es/orgapachelogging-1021/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> You may download all the artifacts by executing: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> wget -e robots=3Doff --cut-dirs=3D7 -nH -r -p -np --no-chec= k-certificate https://repository.apache.org/content/repositories/orgapachel= ogging-1021/org/apache/logging/log4j/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Mikael St=C3=A5ldal* >>>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>>> mikael.staldal@magine.com >>>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>>> >>>>>>>>>>>>>> Privileged and/or Confidential Information may be contained >>>>>>>>>>>>>> in this message. If you are not the addressee indicated in t= his message >>>>>>>>>>>>>> (or responsible for delivery of the message to such a >>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone.= In such case, >>>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>>> by reply email. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>> >>>>>>>>>>>>> *Mikael St=C3=A5ldal* >>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>> >>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>> mikael.staldal@magine.com >>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>> >>>>>>>>>>>>> Privileged and/or Confidential Information may be contained i= n >>>>>>>>>>>>> this message. If you are not the addressee indicated in this = message >>>>>>>>>>>>> (or responsible for delivery of the message to such a person)= , >>>>>>>>>>>>> you may not copy or deliver this message to anyone. In such c= ase, >>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>> by reply email. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org >>>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>>> >>>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>>> >>>>>>>>>>>> Spring Batch in Action >>>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> [image: MagineTV] >>>>>>>>>>> >>>>>>>>>>> *Mikael St=C3=A5ldal* >>>>>>>>>>> Senior software developer >>>>>>>>>>> >>>>>>>>>>> *Magine TV* >>>>>>>>>>> mikael.staldal@magine.com >>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.co= m >>>>>>>>>>> >>>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>>> this message. If you are not the addressee indicated in this me= ssage >>>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>>> you may not copy or deliver this message to anyone. In such cas= e, >>>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>>> reply email. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org >>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>> >>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>> >>>>>>>>>> Spring Batch in Action >>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> [image: MagineTV] >>>>>>>>> >>>>>>>>> *Mikael St=C3=A5ldal* >>>>>>>>> Senior software developer >>>>>>>>> >>>>>>>>> *Magine TV* >>>>>>>>> mikael.staldal@magine.com >>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>> >>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>> this message. If you are not the addressee indicated in this mess= age >>>>>>>>> (or responsible for delivery of the message to such a person), yo= u >>>>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>> reply email. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> [image: MagineTV] >>>>>>>> >>>>>>>> *Mikael St=C3=A5ldal* >>>>>>>> Senior software developer >>>>>>>> >>>>>>>> *Magine TV* >>>>>>>> mikael.staldal@magine.com >>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>> >>>>>>>> Privileged and/or Confidential Information may be contained in thi= s >>>>>>>> message. If you are not the addressee indicated in this message >>>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>> reply email. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org >>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>> >>>>>>> JUnit in Action, Second Edition >>>>>>> Spring Batch in Action >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> Home: http://garygregory.com/ >>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> [image: MagineTV] >>>>>> >>>>>> *Mikael St=C3=A5ldal* >>>>>> Senior software developer >>>>>> >>>>>> *Magine TV* >>>>>> mikael.staldal@magine.com >>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>> >>>>>> Privileged and/or Confidential Information may be contained in this >>>>>> message. If you are not the addressee indicated in this message >>>>>> (or responsible for delivery of the message to such a person), you >>>>>> may not copy or deliver this message to anyone. In such case, >>>>>> you should destroy this message and kindly notify the sender by repl= y >>>>>> email. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> [image: MagineTV] >>>>> >>>>> *Mikael St=C3=A5ldal* >>>>> Senior software developer >>>>> >>>>> *Magine TV* >>>>> mikael.staldal@magine.com >>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>> >>>>> Privileged and/or Confidential Information may be contained in this >>>>> message. If you are not the addressee indicated in this message >>>>> (or responsible for delivery of the message to such a person), you ma= y >>>>> not copy or deliver this message to anyone. In such case, >>>>> you should destroy this message and kindly notify the sender by reply >>>>> email. >>>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org >>>> Java Persistence with Hibernate, Second Edition >>>> >>>> JUnit in Action, Second Edition >>>> Spring Batch in Action >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>>> >>> >>> >>> >>> -- >>> [image: MagineTV] >>> >>> *Mikael St=C3=A5ldal* >>> Senior software developer >>> >>> *Magine TV* >>> mikael.staldal@magine.com >>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>> >>> Privileged and/or Confidential Information may be contained in this >>> message. If you are not the addressee indicated in this message >>> (or responsible for delivery of the message to such a person), you may >>> not copy or deliver this message to anyone. In such case, >>> you should destroy this message and kindly notify the sender by reply >>> email. >>> >>> >>> >> >> >> -- >> [image: MagineTV] >> >> *Mikael St=C3=A5ldal* >> Senior software developer >> >> *Magine TV* >> mikael.staldal@magine.com >> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >> >> Privileged and/or Confidential Information may be contained in this >> message. If you are not the addressee indicated in this message >> (or responsible for delivery of the message to such a person), you may >> not copy or deliver this message to anyone. In such case, >> you should destroy this message and kindly notify the sender by reply >> email. >> > > > > -- > E-Mail: garydgregory@gmail.com | ggregory@apache.org > Java Persistence with Hibernate, Second Edition > > JUnit in Action, Second Edition > Spring Batch in Action > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > --=20 E-Mail: garydgregory@gmail.com | ggregory@apache.org Java Persistence with Hibernate, Second Edition JUnit in Action, Second Edition Spring Batch in Action Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory --001a113d6a46064140053dbda633 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Fixed.=C2=A0

This looks like it n= eeds addressing:=C2=A0https://issues.apache.org/jira/browse/LOG4J2-1618
Gary
=C2=A0

Gary

On Thu, Sep 29, 2016 at 9:31 AM, Mikael St=C3=A5ldal <mikael.staldal@magine.com> wrote:
I created JIRA issues fo= r the Kafka and Flume appender timeout issues, and I have fixed both of the= m in master branch.

I also created a JIRA issue fo= r the JVM shutdown hook, but that not as easy to fix and I would not consid= er it a blocker for the 2.7 release. We can fix it for 2.7.1:
=
I think we can go ahead now and make an 2.7-rc2 from the cur= rent state of master branch.


On Thu, Sep 29, 2016 at 3:4= 5 PM, Ralph Goers <ralph.goers@dslextreme.com> wrot= e:
The release is already delayed. So far we have two co= mpatibility issues that need to be fixed. Please create a Jira issue for th= e Flume Appender and the JVM shutdown hook. Lets gets those fixed. And perh= aps we should stop doing things that aren=E2=80=99t directly focused on get= ting the release out as they may well introduce more problems.
<= font color=3D"#888888">

Ralph

On Sep 29, 2016, at 5:16 AM, Mik= ael St=C3=A5ldal <mikael.staldal@magine.com> wrote:

I think that it is unfortunate that the close timeout is always zero = within the standard JVM shutdown hook=C2=A0(LoggerContext.java:275). I thin= k that should be configurable. However, I don't want to delay the relea= se for that, so let's fix that after the 2.7 release.=C2=A0https:/= /issues.apache.org/jira/browse/LOG4J2-1623

Howe= ver, I want to make sure that KafkaManager use the previous behavior if the= requested timeout is zero. I just made a commit to master with that.
=

It seems like=C2=A0FlumePersistentManager.releaseSub= =C2=A0(the only other Manager using releaseSub timeout) tries to do = something similar:
final long shutdownWaitMillis =3D requestedTimeoutMillis < 0 ? SHUTDOWN_WAIT_MILLIS : reques=
tedTimeoutMillis;
But I thing the logic is wrong here. = It should probably use=C2=A0SHUTDOWN_WAIT_MILLIS=C2=A0if=C2=A0requestedTimeoutMillis is &= lt;=3D 0.=C2=A0This should possibly be fixed before the release.
=



On Wed, Sep 28, 2016 at 6:54 PM, Gary Gregory <garydgregory@gmail.com> wrote:
On Wed, Sep 28, 2016 at 8:51 AM, Mikael St=C3= =A5ldal <mikael.staldal@magine.com> wrote:
Was this timeo= ut thing implemented as part of any JIRA issue?

=

Gary
=C2=A0
=

On Wed, Sep = 28, 2016 at 5:49 PM, Mikael St=C3=A5ldal <mikael.staldal@magine.co= m> wrote:
To track this, I temporary added this to KafkaManager.re= leaseSub():
LOGGER= .info("releaseSub: timeout= =3D" + timeout + " &quo= t; + timeUnit.toString(), new = Throwable());
and I get:
2016-09-28 17:43:14,382 pool-1-threa=
d-1 INFO releaseSub: timeout=3D0 MILLISECONDS java.lang.Throwable
	at org.apache.logging.log4j.co=
re.appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java:60)
	at org.apache.logging.log4j.core.appender.AbstractManager.stop(A=
bstractManager.java:85)
	at org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppende=
r.stop(KafkaAppender.java:107)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.st=
op(AbstractConfiguration.java:349)
	at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContex=
t.java:329)
	at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstract=
LifeCycle.java:127)
	at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerConte=
xt.java:275)
	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackReg=
istry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.j=
ava:104)
	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackReg=
istry.run(DefaultShutdownCallbackRegistry.java:74)
	at java.lang.Thread.run(Thread.java:745)
the culprit is AbstractLifeCycle.stop() which=
 uses a default timeout of 0.

On Wed, Sep 28, 2016 at 5:40 PM, Ga= ry Gregory <garydgregory@gmail.com> wrote:
It is used when y= ou call LifeCycle2.stop(long, TimeUnit), like stopping a LoggerContext or a= ll of Log4j through the shutdown() method.
Gary

On Wed, Sep 28, 2016 at 8:35 AM, Mi= kael St=C3=A5ldal <mikael.staldal@magine.com> wrote:=
I se= e that KafkaManager.releaseSub() is passed= a timeout of 0 at runtime, which is not very useful. How is this actually = supposed to be used? How can you make it get something else than 0?<= /div>

On= Wed, Sep 28, 2016 at 5:33 PM, Mikael St=C3=A5ldal <mikael.staldal= @magine.com> wrote:
We have already discussed this here:=C2=A0https://issues.apache.org/jira/browse/LOG4J2-1390

<= div>I don't think the release process is the right occasion to reopen t= his discussion. Can we please keep the Kafka 0.8 compatibility for this rel= ease, and then possibly reopen this discussion after the release (and possi= bly changing it for the 2.8 release)?

On Wed, Sep 28, 2016 at 5:24 PM, = Gary Gregory <garydgregory@gmail.com> wrote:
On Wed, Sep 28, 2016 at 8:13 A= M, Mikael St=C3=A5ldal <mikael.staldal@magine.com> w= rote:
Kafka server 0.8 is still in use, and newer Kafka clients cannot connect t= o older Kafka servers.

There w= ill always be users of old software. That does not mean that new versions o= f Log4j must support old software, especially pre-1.0 software.
<= div>

Gary
=C2=A0

On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory <ga= rydgregory@gmail.com> wrote:
I do not think it makes sense to supp= ort old versions that are not even 1.0.
<= br>
Gary

On Wed, Sep 28, 2016 at 7:42 AM, Mikae= l St=C3=A5ldal <mikael.staldal@magine.com> wrote:
I fixed= the Kafka issue and pushed it to master branch.

However= , I have another concern, what timeout value is actually passed in to=C2=A0= Abst= ractManager.releaseSub ?

<= div class=3D"gmail_quote">On Wed, Sep 28, 2016 at 3:51 PM, Mikael St=C3=A5l= dal <mikael.staldal@magine.com> wrote:
-1 since the Kafka= appender now only works with Kafka client (and thus server) 0.9+, even tho= ugh we agreed to keep compatibility with 0.8 for the time being:


The problem appeared with commit=C2=A0170469514b= 374eb5a5a33bde6936162fd608f097 by Gary in KafkaManager.java (method re= leaseSub).

I get this error with kafka-clients 0.8.2.2:

java.lang.NoSuchMethodError: org.apache.kafka.clients.produ= cer.Producer.close(JLjava/util/concurrent/TimeUnit;)V
at org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java:61= )
at org.apache.logg= ing.log4j.core.appender.AbstractManager.stop(AbstractManager.java= :85)
at org.apache.l= ogging.log4j.core.appender.mom.kafka.KafkaAppender.stop(KafkaAppe= nder.java:107)
= at org.apache.logging.log4j.core.config.AbstractConfiguration.sto= p(AbstractConfiguration.java:349)
at org.apache.logging.log4j.core.LoggerContext.stop= (LoggerContext.java:329)
at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abst= ractLifeCycle.java:127)
at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCo= ntext.java:275)
at org.apache.logging.log4j.core.util.DefaultShutdownCallbackReg= istry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.j= ava:104)
at org.apac= he.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(De= faultShutdownCallbackRegistry.java:74)
at java.lang.Thread.run(Thread.java:745)
=




On Mon, Sep 26,= 2016 at 5:50 PM, Ralph Goers <ralph.goers@dslextreme.com>= wrote:
This is a vote to release Log4j 2.6.2, the nex= t version of the Log4j 2 project.

Please download, = test, and cast your votes on the log4j developers list.
[] +1, re= lease the artifacts
[] -1, don't release because...

The vote=C2=A0will remain open for 72 hours (or more if req= uired). All votes=C2=A0are welcome and we encourage everyone to test the re= lease, but only Logging PMC votes=C2=A0are =E2=80=9Cofficially=E2=80=9D cou= nted. As always, at least 3 +1 votes and more positive than negative votes = are required.
Changes in this version include:

New f= eatures:
o LOG4J2-1578: RoutingAppender can be configured with scripts.= Add Script in a Routes element.
o LOG4J2-1597: Add a ScriptAppenderSe= lector to create an Appender specified by a Script.
o LOG4J2-1349: (GC= ) Added support for garbage-free ThreadContext map. Disabled by default, us= ers need to enable this explicitly.
o LOG4J2-1447: (GC) Changed LogEve= nt's internal data structure for context data to be garbage-free. Added= method LogEvent#getContextData(), deprecated method #getContextMap().
= o LOG4J2-1010: Users can now inject context data from other sources than T= hreadContext. Values can be any Object, not just Strings. Thanks to Mikael = St=C3=A5ldal.
o LOG4J2-1568: Added support for java.util.concurrent.Li= nkedTransferQueue to AsyncAppender.
o LOG4J2-1430: Added optional= support for Conversant DisruptorBlockingQueue in AsyncAppender. Thanks to = John Cairns.
o LOG4J2-1439: Added optional support for JCTools MPSC bo= unded lock-free queue in AsyncAppender. Thanks to Anthony Maire.
o LOG4= J2-1558: SocketAppender now supports IO buffering.
o LOG4J2-1557: Add= a Builder for the SocketAppender (deprecates factory method).
o LOG4J2= -1609: Add a Builder to ServletAppender and deprecate factory method.
= o LOG4J2-1553: AbstractManager now implements AutoCloseable.
o LOG4J2-= 1528: Added ability to generate Log4j 2-style XML configuration file from = ConfigurationBuilder.
o LOG4J2-1181: Added Logging API for Scala 2.10 = and 2.11.
o LOG4J2-1512: Added options to exclude stack trace from JSO= N, XML and YAML layouts.
o LOG4J2-1539: Added Core API Configurator.sh= utdown(LoggerContext, long, TimeUnit).
o LOG4J2-1501: FileAppende= r is now able to create files on-demand.
o LOG4J2-1504: RollingFileApp= ender is now able to create files on-demand.
o LOG4J2-1471: [PatternLa= yout] Add an ANSI option to %xThrowable.
o LOG4J2-1472: org.apache.log= ging.log4j.core.LoggerContext now implements Closeable.
o LOG4J2-1= 458: [PatternLayout] Add an ANSI option to %message.
o LOG4J2-1505: C= reate a Builder for the FileAppender plugin to facilitate adding attributes= in the future.
o LOG4J2-1507: Allow Builders to be completely generic= .
o LOG4J2-1508: Allow a Builder to subclass another Builder.
o LO= G4J2-1516: Add ThreadContextMap2 interface supporting method putAll(Map<= ;String, String>). Thanks to Gary Gregory.
o LOG4J2-1519: Add Threa= dContext.putAll(Map<String, String>).
o LOG4J2-1520: Add JU= nit Rule implementations to manage the thread context.
o LOG4J2-1547: = The Core AbstractConfiguration now tracks its LoggerContext and add Configu= ration.getLoggerContext().
o LOG4J2-1540: The Core AbstractManage= r now tracks its LoggerContext.
o LOG4J2-1577: Add a Builder to the Ro= utingAppender and deprecate factory method.

Fixed Bugs:
o LOG4J2= -1611: Improved performance of context data injector for web applications = to be on par with standalone applications.
o LOG4J2-1591: Introduced n= ew interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking b= ackwards compatibility with new Configurator.shutdown(LoggerContext, l= ong, TimeUnit) API.
o LOG4J2-1590: Fixed issue with filters extending = AbstractFilter that did not override methods with unrolled varargs.
o L= OG4J2-1583: Fixed scrambled log messages triggered by nested logging from = toString() method of a logging parameter object. Thanks to Larry West.
= o LOG4J2-1259: Log4j threads are no longer leaking on Tomcat shutdown. Tha= nks to Misagh Moayyed, Steffen Offermann.
o LOG4J2-1051: When starting= on Google App Engine, Interpolator now suppresses the NoClassDefFoundError= stack trace for the jvmrunargs lookup. Thanks to Lukasz Lenart.
o LOG= 4J2-1582: When initializing on platforms where JMX is not available, Inter= polator component no longer prints stack trace for warning messages.
o = LOG4J2-1581: Unregistering JMX components no longer prints a stack trace w= hen the MBean has already been unregistered.
o LOG4J2-1313: Support Pr= operty values to be specified in configuration as a value attribute as well= as an element. Thanks to Philipp Knobel, Leon Finker.
o LOG4J2-1575: = (GC) LoggerConfig now stores configuration properties in a List, not a Map = to prevent creating temporary Iterator objects. Added method LoggerConfig#g= etPropertyList(), deprecated method #getProperties().
o LOG4J2-145= 7: Fixed class loader deadlock when using async logging and extended stack= trace pattern. Thanks to Leon Finker.
o LOG4J2-1563: Fix to prevent L= og4j 2.6.2 and higher from losing exceptions when a security manager is pre= sent. Thanks to Jason Tedor.
o LOG4J2-1530: Fixed issue where LogEvent= .getContextStack() returned null.
o LOG4J2-1518: Prevent deadlock in A= sync Loggers when queue is full and logged Object's toString() logs ano= ther message. Thanks to Leon Finker.
o LOG4J2-1542: Prevent ArrayIndex= OutOfBoundsException in ParameterizedMessage.formatTo for single-char or em= pty messages. Thanks to Rog=C3=A9rio Lecari=C3=A3o Leite.
o LOG4J2-1549= : Fixed issue where AsyncLoggerContextSelector+PropertiesConfiguratio= nBuilder defaulted to includeLocation=3Dtrue. Thanks to Jason Bedard.
o= LOG4J2-1562: Prevent SocketAppender memory usage from growing unbounded i= f it cannot connect to a server.
o LOG4J2-1559: Prevent NPE in Level.i= sInRange. Thanks to Andrey Plotkin.
o LOG4J2-1511: DynamicThresholdFil= ter filtered incorrectly when params were passed as individual arguments in= stead of varargs. Thanks to Srikanth Surukuntu.
o LOG4J2-1548: [CronTr= iggeringPolicy] ConfigurationScheduler scheduled the task infinitely after = first fire.
o LOG4J2-1506: Log4j should not unregister JMX MBeans when= log4j2.disable.jmx property is true. Thanks to Johannes Schleger.
o LO= G4J2-1490: Log4j2 should postpone creating log file until the appender act= ually receives an event. Thanks to Krzysztof Taborski.
o LOG4J2-1320: = Support loading custom plugins from jar files and directories whose classpa= th entries use the "vfs" URL protocol. Thanks to Paresh Varke, Pi= errick Hymbert.
o LOG4J2-1541: Fix file handle resource leak in XmlCon= figuration.XmlConfiguration(ConfigurationSource).
o LOG4J2-1538: = Prevent NPE when dynamically removing filters. Thanks to Igor Karpov.
o= LOG4J2-1532: Attributes were not merged properly in composite configurati= ons.
o LOG4J2-1529: Attributes were not merged properly in composite c= onfigurations. Thanks to Sridevi Narra.
o LOG4J2-1527: Prevent NPE in = RingBufferLogEvent.getFormattedMessage() when used in web applications= . Thanks to Jose Leon.
o LOG4J2-905: Added ability to disable (date) l= ookup completely for compatibility with other libraries like Camel. Thanks = to Moritz L=C3=B6ser.
o LOG4J2-1526: Added support for setting StatusL= ogger destination in ConfigurationBuilder.
o LOG4J2-1448: Allow comma = separated agents, host list to be passed to FlumeAppender. Thanks to Keith = Laban.
o LOG4J2-1500: Merging configurations failed with an NPE when c= omparing Nodes with different attributes. Thanks to Jose Leon.
o LOG4J2= -1482: Fixed improper header in CsvParameterLayout. Thanks to Sumit Singha= l.
o LOG4J2-1199: Documented that JVM Input Arguments Lookup (JMX) is = not available on Google App Engine.
o LOG4J2-1438: (GC) Added method g= etParameter() to ObjectMessage (and ReusableObjectMessage).
o LOG4J2-14= 88: (GC) Fixed ISO8601 %date conversion pattern with a period '.' = separator for milliseconds is now garbage free. Thanks to Richard Zschech. =
o LOG4J2-1489: (GC) Fixed %date conversion patterns with a timezone pa= rameter are now garbage free. Thanks to Richard Zschech.
o LOG4J2-1279:= Prevent NullPointerException in FastDateParser$TimeZoneStrategy. Tha= nks to Tony Baines.
o LOG4J2-1341: (GC) HighlightConverter and StyleCo= nverter are now GC-free. Thanks to Richard Zschech.
o LOG4J2-1467: [OS= Gi] Fixed missing import package. Thanks to Ralf, Gary Gregory.
o LOG4J= 2-351: [OSGi] Fixed wrong Fragment-Host in manifest files. Thanks to Rolan= d Weiglhofer.
o LOG4J2-1313: Properties declared in configuration can = now have their value either in the element body or in an attribute named &q= uot;value". Thanks to Philipp Knobel.
o LOG4J2-1235: org.apache.l= ogging.log4j.core.appender.routing.IdlePurgePolicy was not workin= g correctly. Thanks to Niranjan Rao, Sascha Scholz, Aleksey Zvolinsky.
= o LOG4J2-1502: Fixed issue where CsvParameterLayout and CsvLogEventLayout = inserted NUL characters if data starts with {, (, [ or " Thanks to Sum= it Singhal.
o LOG4J2-1573: Layout is no longer optional. Thanks to Ste= ffen Offermann.
o LOG4J2-1608: ServletAppender does not provide throwa= ble object to ServletContext.
o LOG4J2-1599: Prevent potential NPE in = org.apache.logging.log4j.message.ParameterFormatter.formatMessage= 3(StringBuilder, char[], int, Object[], int, int[]).
o LOG4J2-1600: Pr= event potential NPE due to org.apache.logging.log4j.core.layout.Marker= PatternSelector.createSelector(PatternMatch[], String, boolean, boolea= n, Configuration).
o LOG4J2-1601: Prevent potential NPE due to org.apa= che.logging.log4j.core.layout.ScriptPatternSelector.createSelecto= r(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration).=
o LOG4J2-1602: Prevent potential NPE in org.apache.logging.log4j.core= .util.datetime.FormatCache.MultipartKey.equals(Object) when objec= t is null.
o LOG4J2-1603: Redo hashCode() and equals() methods in org.= apache.logging.log4j.core.net.ssl classes.
o LOG4J2-1610: Add tar= getNamespace to log4j-config.xsd. GitHub #43. Thanks to Shubhankar.
Changes:
o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks t= o Colin Hillman.
o LOG4J2-1574: Allow the RollingFileAppender to use d= efault pattern layout.
o LOG4J2-1556: Custom Log4j threads now extend = Log4jThread.
o LOG4J2-1605: Improve error messages for TcpSocketServer= and UdpSocketServer.
o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8= .0.
o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1.
o LOG4J2-1= 569: Updated Jackson from 2.8.1 to 2.8.2.
o LOG4J2-1598: Updated Jack= son from 2.8.2 to 2.8.3.
o LOG4J2-1495: Updated LMAX Disruptor from 3.= 3.4 to 3.3.5.
o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10= .0.0.
o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to 0.10.0.1. <= br>o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.
o L= OG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.
o LOG4J2-= 1543: Removed deprecated Core API org.apache.logging.log4j.core.util.= Constants.UTF_8.
o LOG4J2-1544: Removed deprecated Core API org.apache= .logging.log4j.core.util.Assert.requireNonNull(T, String).
o LOG4J= 2-1545: Removed deprecated Web API org.apache.logging.log4j.web.WebLo= okup.getServletContext().
Tag:=C2=A0

a) =C2=A0for a new copy do "git clone https://git-wip-us.apache.org/repos= /asf/logging-log4j2.git"=C2=A0and then &q= uot;git checkout tags/log4j-2.7-rc1=E2=80=9D
b) for an existing working copy= to=C2=A0=E2=80=9Cgit pull=E2=80=9D and then=C2=A0=E2=80=9Cgit checkout tag= s/log4j-2.7-rc1=E2=80=9D


You may downlo= ad all the artifacts by executing:
wget -e robots=3Doff --cut-di= rs=3D7 -nH -r -p -np --no-check-certificate=C2=A0https://repository.apache.org/content/repositories/orgapach= elogging-1021/org/apache/logging/log4j/

Ralph




= --
3D"MagineTV"

Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--


Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



-= -



--


Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--


Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--
=
3D"MagineTV"

Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--
=



--
=
3D"MagineTV"

Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--
=
3D"MagineTV"

Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--


Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0




--
3D"MagineTV"

Mikael St=C3=A5ldal
Senior software developer

Magine TV
mikael.s= taldal@magine.com=C2=A0 =C2=A0=C2=A0
Grev Turegatan 3 =C2=A0|=C2=A0114 46 St= ockholm, Sweden=C2=A0 | =C2=A0 www.magine.com

Privilege= d and/or Confidential Information may be contained in this message. If=20 you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case,=C2=A0
you should destroy this message and kindly notify the sender by reply ema= il. =C2=A0=C2=A0



--
=


--
= --001a113d6a46064140053dbda633--