Hi Harry,

I think I've come up with what's causing the stacktrace, I've tried with
$svn/tags/jspwiki_2_9_1_rc2 and, the class being basically the same, these
stacktraces don't show up. However, there's one significant difference on
.check():

catch( EmptyStackException e )
{
  // FIXME: Do something?
}

which is why we've never seen the trace before.

Further analysis, the traces are being caused by
WatchDog.WatchDogThread.background(): there's an iterator on c_kennel, in
which, for each alive WatchDog (w), w.check() is called. Most of the time,
each of the WatchDogs called on this iterator c_kennel yields the
EmptyStackException, most probably due to the being under very low load,
that is one person testing against the wiki. 99% of the time, tomcat
threads are causing this issue (not always, and happening no matter tomcat
6 or 7). Occasionally a Lucene or EhCache background thread shows up on the
stacktraces, but that as well might be ok, as c_kennel is holding
WeakReferences.

So I'd rather go on WatchDog.WatchDogThread.backgroundTask() replacing:
                    if( w != null ) {
                        if( w.m_watchable != null &&
w.m_watchable.isAlive() ) {
                            w.check();
                        } else {
                            c_kennel.remove( entry.getKey() );
                            break;
                        }
                    }

with something on the lines of:
                    if( w != null ) {
                        if( w.m_watchable != null &&
w.m_watchable.isAlive() && associatedStateStackIsNotEmpty( w ) ) {
                            w.check();
                        } else {
       [...]

       boolean associatedStateStackIsNotEmpty( WatchDog w ) { // this could
be as well a WatchDog method
            return w.m_stateStack != null && !w.m_stateStack.isEmpty();
        }


WDYT?



On Sun, Dec 22, 2013 at 7:55 PM, Harry Metske <harry.met...@gmail.com>wrote:

> Juan Pablo,
>
> I had a further look at the WatchDog issue.
> First, the overhead is quite minimal, we have just one extra thread, that
> regularly "opens the kennel" and checks the WatchDogs.
> Now, the EmptyStackException is just a simple bug in WatchDog.check(), I'd
> like to fix it with a simple extra check for a zero-size m_stateCheck at
> line 263.
>
>
>         synchronized( m_stateStack ) {
>             try {
>                 if (m_stateStack.size() > 0) {
>                     WatchDog.State st = m_stateStack.peek();
>
>                     long now = System.currentTimeMillis();
>
> I cannot explain why this hasn't been seen earlier.
>
> kind regards,
> Harry
>
>
>
> On 20 December 2013 23:23, Juan Pablo Santos Rodríguez <
> juanpablo.san...@gmail.com> wrote:
>
> > Hi,
> >
> > I'm moving open issues on JIRA scheduled for 2.10 version to 2.10.1 and
> > calling the vote in a few minutes. Regarding the staging repo, I've
> opened
> > https://issues.apache.org/jira/browse/INFRA-7125 to track what's
> happening
> > with it. We'll have the old-good fashioned convenience binaries
> meanwhile.
> >
> >
> > br,
> > juan pablo
> >
> >
> >
> > On Thu, Dec 19, 2013 at 10:37 AM, Jürgen Weber <juer...@jwi.de> wrote:
> >
> > > +1
> > >
> > > Checks for long running threads are made by the appserver.
> > >
> > > Jürgen
> > > Am 19.12.2013 06:54 schrieb "Harry Metske" <harry.met...@gmail.com>:
> > >
> > > > Also, I was wondering why we need this WatchDog thing altogether.
> > > > I understand that it should notify (log a message) when a Thread
> takes
> > > too
> > > > long to end, but to be honest I have never seen such a warning.
> > > > The cons are :
> > > > * it clutters up our code
> > > > * leaves running threads behing when the webapp is stopped (Tomcat
> > > > complains about it), for example the Lucene Indexer, RSS generator,
> and
> > > > more)
> > > > * for every request we make 2 WatchDogs (WikiJSPPFilter), and if I'm
> > > > correct that means 2 Threads created/destroyed, I would think that's
> > > quite
> > > > some overhead (I could do some measurements on that).
> > > > * it now also pollutes the log (but we might fix that)
> > > >
> > > > WDYT ?
> > > >
> > > > kind regards,
> > > > Harry
> > > >
> > > >
> > > >
> > > > On 18 December 2013 22:14, Juan Pablo Santos Rodríguez <
> > > > juanpablo.san...@gmail.com> wrote:
> > > >
> > > > > Hi Harry,
> > > > >
> > > > > I had a lot of those while testing before r1551702, due to
> > > > > o.a.w.tags.SearchResultIteratorInfo containing a String with an
> > > incorrect
> > > > > classname. I'm currently re-trying to close the repo*, but I'll
> > recheck
> > > > on
> > > > > that too to make sure everything is ok in order to proceed with
> > voting
> > > > >
> > > > >
> > > > > br,
> > > > > juan pablo
> > > > >
> > > > >
> > > > > * my current plan is to try 2 or 3 more times in the following
> hours,
> > > > while
> > > > > updating the "How to release" instructions at jspwiki.a.o. If
> > tomorrow
> > > > > morning the repo persists in not being closed, I'll upload the repo
> > > > > artifacts somewhere at people.a.o to start the vote with some
> > > convenience
> > > > > binaries. Later on we can mark that staging repo as closed +
> > released,
> > > so
> > > > > binaries effectively reach Central..
> > > > >
> > > > >
> > > > > On Wed, Dec 18, 2013 at 8:47 PM, Harry Metske <
> > harry.met...@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > Juan Pablo,
> > > > > >
> > > > > > first, thanks for all your efforts, I too appreciate !
> > > > > >
> > > > > > I have been testing the trunk, the only thing I could find until
> > now
> > > is
> > > > > > every 30 seconds a couple of these in the jspwiki.log:
> > > > > >
> > > > > > 2013-12-18 20:44:11,954 ERROR org.apache.wiki.WatchDog - Stack is
> > > > empty!
> > > > > > java.util.EmptyStackException
> > > > > >     at java.util.Stack.peek(Stack.java:102)
> > > > > >     at org.apache.wiki.WatchDog.check(WatchDog.java:264)
> > > > > >     at org.apache.wiki.WatchDog.access$300(WatchDog.java:52)
> > > > > >     at
> > > > > >
> > > >
> > org.apache.wiki.WatchDog$WatchDogThread.backgroundTask(WatchDog.java:371)
> > > > > >     at
> > > > > >
> > > org.apache.wiki.WikiBackgroundThread.run(WikiBackgroundThread.java:118)
> > > > > >
> > > > > > I'm investigating it currently...
> > > > > >
> > > > > > kind regards,
> > > > > > Harry
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 18 December 2013 02:00, Juan Pablo Santos Rodríguez <
> > > > > > juanpablo.san...@gmail.com> wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > quick note, as it's nearly 2.00am here; done almost all steps
> > > > required
> > > > > to
> > > > > > > publish all artifacts on a staging repo, which the vote is
> going
> > to
> > > > be
> > > > > > run
> > > > > > > against. Currently blocked by a nexus timeout on closing the
> > > staging
> > > > > > repo,
> > > > > > > progress can be followed at
> > > > > > > https://issues.apache.org/jira/browse/INFRA-7105.
> > > > > > > Once this is fixed (hopefully by tomorrow..), the vote for
> 2.10.0
> > > > > release
> > > > > > > will be called.
> > > > > > >
> > > > > > >
> > > > > > > br,
> > > > > > > juan pablo
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Mon, Dec 16, 2013 at 10:50 PM, Siegfried Goeschl <
> > > > > > > siegfried.goes...@it20one.com> wrote:
> > > > > > >
> > > > > > > > Hi Juan Pablo,
> > > > > > > >
> > > > > > > > I will play around with the current trunk :-)
> > > > > > > >
> > > > > > > > Cheers,
> > > > > > > >
> > > > > > > > Siegfried Goeschl
> > > > > > > >
> > > > > > > >
> > > > > > > > On 16 Dec 2013, at 22:03, Juan Pablo Santos Rodríguez <
> > > > > > > > juanpablo.san...@gmail.com> wrote:
> > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > just finished doing a big bunch of pending refactors prior
> to
> > > > > > releasing
> > > > > > > > > 2.10. We should be able to end up with all the artifacts on
> > > maven
> > > > > > > central
> > > > > > > > > too (once the vote+release passes), and use a staged
> > > > repository[#1]
> > > > > > to
> > > > > > > > vote
> > > > > > > > > instead of uploading to somewhere at people.a.o
> > > > > > > > >
> > > > > > > > > There are only a couple of points remaining: updating
> > UPGRADING
> > > > and
> > > > > > > > > ReleaseNotes and ensuring all the prerequisites of [#1] are
> > > met.
> > > > > > > > Hopefully,
> > > > > > > > > they will be done between today and tomorrow. In the
> > meantime,
> > > > this
> > > > > > is
> > > > > > > a
> > > > > > > > > call for testing current trunk, which is going to be most
> > > likely
> > > > > > > 2.10.0.
> > > > > > > > > I've tried to test all the recent commits (and will
> continue
> > to
> > > > do
> > > > > > some
> > > > > > > > > more testing), but for sure the more people looking into it
> > > > before
> > > > > > > voting
> > > > > > > > > the release, the better.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > thanks + br,
> > > > > > > > > juan pablo
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > [#1]:
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> http://www.apache.org/dev/publishing-maven-artifacts.html#staging-maven
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Sun, Nov 10, 2013 at 11:07 PM, Siegfried Goeschl <
> > > > > > > > > siegfried.goes...@it20one.at> wrote:
> > > > > > > > >
> > > > > > > > >> Hi folks,
> > > > > > > > >>
> > > > > > > > >> IMHO it is important to get the release out
> > > > > > > > >>
> > > > > > > > >> * users are looking at project activity - there are many
> > > > different
> > > > > > > wikis
> > > > > > > > >> out there ...
> > > > > > > > >>
> > > > > > > > >> * are there bugfixes in 2.9.1 the users would appreciate?
> > > Better
> > > > > > have
> > > > > > > a
> > > > > > > > >> small bugfix release now than the latest and greatest
> > release
> > > 9
> > > > > > months
> > > > > > > > down
> > > > > > > > >> the road (which might get delayed later on)
> > > > > > > > >>
> > > > > > > > >> Cheers,
> > > > > > > > >>
> > > > > > > > >> Siegfried Goeschl
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >> On 10.11.13 21:39, Juan Pablo Santos Rodríguez wrote:
> > > > > > > > >>
> > > > > > > > >>> Hi,
> > > > > > > > >>>
> > > > > > > > >>> about 2.9 vs 2.10, I was having in mind releasing trunk
> in
> > > any
> > > > > > case,
> > > > > > > > the
> > > > > > > > >>> version numbers were just to note binary compatibility.
> If
> > we
> > > > > > release
> > > > > > > > >>> current trunk as it is, it isn't binary compatible with
> > > latest
> > > > > > > release,
> > > > > > > > >>> because of 2.10.0-svn-8 and 2.10.0-svn-26. We could copy
> > > those
> > > > > > > classes
> > > > > > > > >>> back
> > > > > > > > >>> to their original location and have 2.9.2 (with some
> > > duplicated
> > > > > > > > classes)
> > > > > > > > >>> or
> > > > > > > > >>> just release 2.10.0 as it is. I'm a little inclined to
> > 2.9.2,
> > > > > > > because I
> > > > > > > > >>> was
> > > > > > > > >>> having in mind further similar refactorings with the rest
> > of
> > > > the
> > > > > > > > managers
> > > > > > > > >>> for 2.10, but given the fact I've been unable to spend
> time
> > > > > coding
> > > > > > > > these
> > > > > > > > >>> last months, 2.10 would also be fine for me.
> > > > > > > > >>>
> > > > > > > > >>> As an aside, there's an initial Infra setup [#1] to allow
> > us
> > > to
> > > > > > > deploy
> > > > > > > > to
> > > > > > > > >>> repository.apache.org, which is synced with central.
> Once
> > > that
> > > > > is
> > > > > > > > done,
> > > > > > > > >>> I'll update the appropiate page on jspwiki.a.o
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>> br,
> > > > > > > > >>> juan pablo
> > > > > > > > >>>
> > > > > > > > >>> [#1] https://issues.apache.org/jira/browse/INFRA-6986
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>> On Fri, Nov 8, 2013 at 10:39 PM, Glen Mazza <
> > > > > glen.ma...@gmail.com>
> > > > > > > > wrote:
> > > > > > > > >>>
> > > > > > > > >>> Yes, I don't see any need to release the same 2.9.1
> product
> > > > just
> > > > > > > > without
> > > > > > > > >>>> "incubator" in its version name, that's not a very
> > > > Apache-esque
> > > > > > way
> > > > > > > of
> > > > > > > > >>>> doing things (the "incubator" in version release is not
> an
> > > > > > indicator
> > > > > > > > of
> > > > > > > > >>>> software quality, as Apache stresses over and over.)
> If
> > > none
> > > > > of
> > > > > > us
> > > > > > > > >>>> right
> > > > > > > > >>>> now have time to work on JSPWiki (a situation I hope
> > changes
> > > > > soon
> > > > > > > with
> > > > > > > > >>>> me),
> > > > > > > > >>>> busywork such as that isn't going to help the situation.
> > > > > > > > >>>>
> > > > > > > > >>>> Glen
> > > > > > > > >>>>
> > > > > > > > >>>>
> > > > > > > > >>>> On 11/08/2013 01:02 PM, Harry Metske wrote:
> > > > > > > > >>>>
> > > > > > > > >>>> what would be reasons to release 2.9.x versus 2.10.x ?
> > > > > > > > >>>>> The latter has more issues fixed...
> > > > > > > > >>>>>
> > > > > > > > >>>>> regards,
> > > > > > > > >>>>> Harry
> > > > > > > > >>>>>
> > > > > > > > >>>>>
> > > > > > > > >>>>>
> > > > > > > > >>>>> On 8 November 2013 08:41, Jürgen Weber <juer...@jwi.de
> >
> > > > wrote:
> > > > > > > > >>>>>
> > > > > > > > >>>>>  +1
> > > > > > > > >>>>>
> > > > > > > > >>>>>> Am 07.11.2013 19:33 schrieb "Juan Pablo Santos
> > Rodríguez"
> > > <
> > > > > > > > >>>>>> juanpablo.san...@gmail.com>:
> > > > > > > > >>>>>>
> > > > > > > > >>>>>>  +1 too
> > > > > > > > >>>>>>
> > > > > > > > >>>>>>> In order to remain 2.9.x, we should get back
> > > > > > o.a.w.WikiException
> > > > > > > > >>>>>>> (deleted
> > > > > > > > >>>>>>> in favour of o.a.w.api.WikiException) and maybe one
> or
> > > two
> > > > > > > similar
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>> changes,
> > > > > > > > >>>>>>
> > > > > > > > >>>>>> have to check svn to be sure.. Otherwise we should
> > release
> > > > > > 2.10.0
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>> I'm thinking we could also use this release to
> publish
> > > the
> > > > > > > release
> > > > > > > > on
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>> ASF's
> > > > > > > > >>>>>>
> > > > > > > > >>>>>> maven repo, so we also end up on central. WDYT?
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>> br,
> > > > > > > > >>>>>>> juan pablo
> > > > > > > > >>>>>>> El 05/11/2013 17:07, "Harry Metske" <
> > > > harry.met...@gmail.com>
> > > > > > > > >>>>>>> escribió:
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>>  +1
> > > > > > > > >>>>>>>
> > > > > > > > >>>>>>>>
> > > > > > > > >>>>>>>> On 5 November 2013 16:50, Jürgen Weber <
> > juer...@jwi.de>
> > > > > > wrote:
> > > > > > > > >>>>>>>>
> > > > > > > > >>>>>>>>  Currently the dev mailing list is a bit lonely,
> there
> > > > seems
> > > > > > > not a
> > > > > > > > >>>>>>>> lot
> > > > > > > > >>>>>>>> be
> > > > > > > > >>>>>>>> going on.
> > > > > > > > >>>>>>>>
> > > > > > > > >>>>>>>>> I suggest that JSPWiki 2.9.1 come out from
> incubator.
> > > > > > > > >>>>>>>>> Actually 2.9.1 looks good. Why not release it?
> > > > > > > > >>>>>>>>>
> > > > > > > > >>>>>>>>>
> > > > http://en.wikipedia.org/wiki/Release_early,_release_often
> > > > > > > > >>>>>>>>>
> > > > > > > > >>>>>>>>> Cheers,
> > > > > > > > >>>>>>>>> Juergen
> > > > > > > > >>>>>>>>>
> > > > > > > > >>>>>>>>>
> > > > > > > > >>>>>>>>>
> > > > > > > > >>
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to