Thanks Vassil, I know you have to explain this to me every time it comes up,
and I'm thankful that you take the time to do it :-)

So ... I guess my theory doesn't explain why my mailbox is empty every time
the server restarts. Since Matyjas' mailbox is not empty and he has RSS
actions, that is probably even more evidence that there is something else
going on.

Ethan

On Mon, Nov 8, 2010 at 2:57 PM, Vassil Dichev <vdic...@apache.org> wrote:

> The invisible messages are "invisible" because they are not saved to
> the database. This means that:
> 1) if you grab a list of the last 40 messages in Anne's timeline, you
> won't get to see the "invisible" ones
> 2) "invisible" messages don't survive a restart
> 3) "invisible" messages cannot be retrieved using a query, but only
> via some listener actor
>
> There is an easy way to catch one of these messages in your timeline-
> just bind the "every X mins" test to a "resend" action. I don't think
> it's just as easy to make a wish come true though ;-)
>
> Maybe it's clearer if call these messages non-persistent than
> invisible and then some of these phenomena would also be
> self-explanatory.
>
> Vassil
>
>
> On Mon, Nov 8, 2010 at 3:09 PM, Ethan Jewett <esjew...@gmail.com> wrote:
> > Yup, that is the beginning of it. The end-game comes in Message.scala, at
> > line 370. It looks like it fails before the nameMap method gets called.
> > Makes me think maybe it is a message with an at_name element that exists
> but
> > with an id that is blank, or something like that.
> >
> > Is there any way we can grab a a list of the last 40 or so messages in
> > Anne's timeline off of the database? Would that be OK Anne?
> >
> > On the unrelated topic, the fabled "invisible messages" are messages that
> > are generated by "every X mins" action tests. I believe they have mailbox
> > reason RegularReason. What actually seems to happen when you set up an
> > action with a test like this is that an Action is set up to listen for
> one
> > of these messages and then do something. There is also a timer set up
> that
> > sends one of these messages at the specified interval. These messages are
> > not displayed in the timeline, but some queries don't properly restrict
> them
> > out of the query scope. When you search for the last 40 messages in my
> > mailbox with no restriction on MailboxReason, then a lot of the messages
> > that come back will be invisible. If there are 40 or these invisible
> > messages, they push all other messages out of the mailbox and I appear to
> > have a blank timeline. We fixed this problem for normal mailbox
> operations
> > several months ago, but I think maybe we missed a query the repopulates
> the
> > mailbox after a restart.
> >
> > Rumor has it that if you catch one of these messages in your timeline,
> you
> > get to make a wish ;-)
> >
> > Ethan
> >
> > On Mon, Nov 8, 2010 at 12:59 PM, Richard Hirsch <hirsch.d...@gmail.com
> >wrote:
> >
> >> here is the exception - I don't know whether there are two exceptions
> >> or just one.
> >>
> >> I've turned all other logging, so I'll be able to keep closer tabs on
> >> the instance.
> >>
> >> This line is interesting :
> >> org.apache.esme.snippet.UserDisplay$.userInfo(UserDisplay.scala:63)
> >>
> >> What do you mean by "invisible messages"?
> >>
> >> D.
> >>
> >> ---------------
> >>
> >> ERROR - Array(scala.collection.Map$class.default(Map.scala:169),
> >> scala.collection.immutable.EmptyMap.default(EmptyMap.scala:22),
> >> scala.collection.Map$class.apply(Map.scala:80),
> >> scala.collection.immutable.EmptyMap.apply(EmptyMap.scala:22),
> >>
> >>
> org.apache.esme.model.Message$$anonfun$toXml$3$$anonfun$apply$10$$anonfun$apply$11.apply(Message.scala:371),
> >>
> >>
> org.apache.esme.model.Message$$anonfun$toXml$3$$anonfun$apply$10$$anonfun$apply$11.apply(Message.scala:370),
> >> scala.Option.map(Option.scala:70),
> >>
> >>
> org.apache.esme.model.Message$$anonfun$toXml$3$$anonfun$apply$10.apply(Message.scala:370),
> >>
> >>
> org.apache.esme.model.Message$$anonfun$toXml$3$$anonfun$apply$10.apply(Message.scala:368),
> >> scala.Seq$class.map(Seq.scala:280),
> >> scala.xml.NodeSeq.map(NodeSeq.scala:34),
> >> org.apache.esme.model.Message$$anonfun$toXml$3.apply(Message.scala:368),
> >> org.apache.esme.model.Message$$anonfun$toXml$3.apply(Message.scala:368),
> >> scala.Seq$class.map(Seq.scala:280),
> >> scala.xml.NodeSeq.map(NodeSeq.scala:34),
> >> org.apache.esme.model.Message.toXml(Message.scala:368),
> >> org.apache.esme.model.Message.digestedXHTML(Message.scala:384),
> >>
> >>
> org.apache.esme.lib.MessageUtils$$anonfun$bindMessages$1.apply(MessageUtils.scala:47),
> >>
> >>
> org.apache.esme.lib.MessageUtils$$anonfun$bindMessages$1.apply(MessageUtils.scala:43),
> >> scala.List.flatMap(List.scala:1132),
> >> org.apache.esme.lib.MessageUtils$.bindMessages(MessageUtils.scala:43),
> >>
> >>
> org.apache.esme.snippet.UserDisplay$$anonfun$userInfo$3.apply(UserDisplay.scala:70),
> >>
> >>
> org.apache.esme.snippet.UserDisplay$$anonfun$userInfo$3.apply(UserDisplay.scala:70),
> >>
> >>
> net.liftweb.util.BindHelpers$FuncBindParam.calcValue(BindHelpers.scala:227),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1$$anonfun$apply$24.apply(BindHelpers.scala:499),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1$$anonfun$apply$24.apply(BindHelpers.scala:492),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:491),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:512),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2$$anonfun$in_bind$1$1.apply(BindHelpers.scala:490),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.in_bind$1(BindHelpers.scala:490),
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.apply(BindHelpers.scala:517),
> >>
> net.liftweb.util.BindHelpers$$anonfun$bind$2.apply(BindHelpers.scala:475),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.util.BindHelpers$class.bind(BindHelpers.scala:475),
> >> net.liftweb.util.Helpers$.bind(Helpers.scala:34),
> >> net.liftweb.util.BindHelpers$class.bind(BindHelpers.scala:444),
> >> net.liftweb.util.Helpers$.bind(Helpers.scala:34),
> >> net.liftweb.util.BindHelpers$class.bind(BindHelpers.scala:414),
> >> net.liftweb.util.Helpers$.bind(Helpers.scala:34),
> >> org.apache.esme.snippet.UserDisplay$.userInfo(UserDisplay.scala:63),
> >> bootstrap.liftweb.Boot$$anonfun$5.apply(Boot.scala:174),
> >> bootstrap.liftweb.Boot$$anonfun$5.apply(Boot.scala:174),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$locSnippet$1$1$$anonfun$apply$65.apply(LiftSession.scala:905),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$locSnippet$1$1$$anonfun$apply$65.apply(LiftSession.scala:905),
> >> net.liftweb.common.Full.map(Box.scala:398),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$locSnippet$1$1.apply(LiftSession.scala:905),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$locSnippet$1$1.apply(LiftSession.scala:904),
> >> net.liftweb.common.Full.flatMap(Box.scala:400),
> >> net.liftweb.http.LiftSession.locSnippet$1(LiftSession.scala:904),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$70.apply(LiftSession.scala:919),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$70.apply(LiftSession.scala:919),
> >> net.liftweb.common.EmptyBox.or(Box.scala:467),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68.apply(LiftSession.scala:918),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68.apply(LiftSession.scala:919),
> >> net.liftweb.http.S$.doSnippet(S.scala:1749),
> >> net.liftweb.http.LiftSession$$anonfun$23.apply(LiftSession.scala:917),
> >> net.liftweb.http.LiftSession$$anonfun$23.apply(LiftSession.scala:916),
> >> net.liftweb.common.Full.map(Box.scala:398),
> >> net.liftweb.http.LiftSession.net
> >> $liftweb$http$LiftSession$$processSnippet(LiftSession.scala:916),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:1032),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:1020),
> >> net.liftweb.util.NamedPF.apply(NamedPartialFunction.scala:36),
> >> net.liftweb.util.NamedPF$.apply(NamedPartialFunction.scala:82),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83$$anonfun$apply$84.apply(LiftSession.scala:1134),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83$$anonfun$apply$84.apply(LiftSession.scala:1134),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$.setVars(S.scala:1585),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83.apply(LiftSession.scala:1133),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83.apply(LiftSession.scala:1133),
> >> net.liftweb.http.S$.withAttrs(S.scala:1604),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82.apply(LiftSession.scala:1132),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82.apply(LiftSession.scala:1132),
> >> net.liftweb.http.S$.doSnippet(S.scala:1749),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81.apply(LiftSession.scala:1131),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81.apply(LiftSession.scala:1131),
> >> net.liftweb.http.LiftSession.net
> >> $liftweb$http$LiftSession$$processOrDefer(LiftSession.scala:1116),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1130),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1124),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1123),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1144),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1124),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1123),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1$$anonfun$apply$2.apply(Surround.scala:39),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1$$anonfun$apply$2.apply(Surround.scala:36),
> >> net.liftweb.common.Full.map(Box.scala:398),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1.apply(Surround.scala:36),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1.apply(Surround.scala:35),
> >> net.liftweb.common.Full.flatMap(Box.scala:400),
> >> net.liftweb.builtin.snippet.Surround$.render(Surround.scala:35),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$dispatch$1$$anonfun$apply$1.apply(Surround.scala:31),
> >>
> >>
> net.liftweb.builtin.snippet.Surround$$anonfun$dispatch$1$$anonfun$apply$1.apply(Surround.scala:31),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$71$$anonfun$apply$73.apply(LiftSession.scala:936),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$71$$anonfun$apply$73.apply(LiftSession.scala:920),
> >> net.liftweb.common.EmptyBox.openOr(Box.scala:465),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$71.apply(LiftSession.scala:920),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68$$anonfun$apply$71.apply(LiftSession.scala:920),
> >> net.liftweb.common.EmptyBox.openOr(Box.scala:465),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68.apply(LiftSession.scala:919),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$23$$anonfun$apply$68.apply(LiftSession.scala:919),
> >> net.liftweb.http.S$.doSnippet(S.scala:1749),
> >> net.liftweb.http.LiftSession$$anonfun$23.apply(LiftSession.scala:917),
> >> net.liftweb.http.LiftSession$$anonfun$23.apply(LiftSession.scala:916),
> >> net.liftweb.common.Full.map(Box.scala:398),
> >> net.liftweb.http.LiftSession.net
> >> $liftweb$http$LiftSession$$processSnippet(LiftSession.scala:916),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:1032),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:1020),
> >> net.liftweb.util.NamedPF.apply(NamedPartialFunction.scala:36),
> >> net.liftweb.util.NamedPF$.apply(NamedPartialFunction.scala:82),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83$$anonfun$apply$84.apply(LiftSession.scala:1134),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83$$anonfun$apply$84.apply(LiftSession.scala:1134),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$.setVars(S.scala:1585),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83.apply(LiftSession.scala:1133),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82$$anonfun$apply$83.apply(LiftSession.scala:1133),
> >> net.liftweb.http.S$.withAttrs(S.scala:1604),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82.apply(LiftSession.scala:1132),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81$$anonfun$apply$82.apply(LiftSession.scala:1132),
> >> net.liftweb.http.S$.doSnippet(S.scala:1749),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81.apply(LiftSession.scala:1131),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$81.apply(LiftSession.scala:1131),
> >> net.liftweb.http.LiftSession.net
> >> $liftweb$http$LiftSession$$processOrDefer(LiftSession.scala:1116),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1130),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1124),
> >> scala.Seq$class.flatMap(Seq.scala:294),
> >> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34),
> >>
> >>
> net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1123),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processTemplate$1$2.apply(LiftSession.scala:546),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$processTemplate$1$2.apply(LiftSession.scala:544),
> >> net.liftweb.common.Full.map(Box.scala:398),
> >> net.liftweb.http.LiftSession.processTemplate$1(LiftSession.scala:544),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$14$$anonfun$apply$39$$anonfun$apply$42.apply(LiftSession.scala:598),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$14$$anonfun$apply$39$$anonfun$apply$42.apply(LiftSession.scala:598),
> >> net.liftweb.common.EmptyBox.or(Box.scala:467),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$14$$anonfun$apply$39.apply(LiftSession.scala:597),
> >>
> >>
> net.liftweb.http.LiftSession$$anonfun$14$$anonfun$apply$39.apply(LiftSession.scala:597),
> >> net.liftweb.util.StackableMaker$class.doWith(Maker.scala:141),
> >> net.liftweb.http.Factory$FactoryMaker.doWith(Factory.scala:37),
> >> net.liftweb.util.StackableMaker$class.doWith(Maker.scala:135),
> >> net.liftweb.http.Factory$FactoryMaker.doWith(Factory.scala:37),
> >> net.liftweb.http.LiftSession$$anonfun$14.apply(LiftSession.scala:596),
> >> net.liftweb.http.LiftSession$$anonfun$14.apply(LiftSession.scala:591),
> >> net.liftweb.common.EmptyBox.or(Box.scala:467),
> >> net.liftweb.http.LiftSession.processRequest(LiftSession.scala:591),
> >> net.liftweb.http.LiftServlet.net
> >>
> $liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:285),
> >> net.liftweb.http.LiftServlet$$anonfun$3.apply(LiftServlet.scala:188),
> >> net.liftweb.http.LiftServlet$$anonfun$3.apply(LiftServlet.scala:188),
> >> net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:1042),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$26.apply(S.scala:1182),
> >> net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:979),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:980),
> >>
> >>
> net.liftweb.mapper.MetaProtoExtendedSession$myWrapper$.apply(ProtoExtendedSession.scala:81),
> >> net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:980),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:1180),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:1179),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$29$$anonfun$apply$30$$anonfun$apply$31$$anonfun$apply$32.apply(S.scala:1205),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$.withReq(S.scala:1214),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$29$$anonfun$apply$30$$anonfun$apply$31.apply(S.scala:1204),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$29$$anonfun$apply$30.apply(S.scala:1203),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$29.apply(S.scala:1202),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:1201),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:1200),
> >>
> >>
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$39$$anonfun$apply$40$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$43.apply(S.scala:1254),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$39$$anonfun$apply$40$$anonfun$apply$41$$anonfun$apply$42.apply(S.scala:1253),
> >> net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:329),
> >> net.liftweb.http.RequestVarHandler$.apply(Vars.scala:250),
> >>
> >>
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$39$$anonfun$apply$40$$anonfun$apply$41.apply(S.scala:1252),
> >> net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:329),
> >> net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:254),
> >>
> >>
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$39$$anonfun$apply$40.apply(S.scala:1251),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$39.apply(S.scala:1250),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:1249),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.S$._init(S.scala:1248),
> >> net.liftweb.http.S$.init(S.scala:887),
> >> net.liftweb.http.LiftServlet.doService(LiftServlet.scala:187),
> >>
> net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:86),
> >>
> net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:86),
> >> net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:326),
> >> net.liftweb.util.Helpers$.calcTime(Helpers.scala:34),
> >> net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:335),
> >> net.liftweb.util.Helpers$.logTime(Helpers.scala:34),
> >> net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:85),
> >> net.liftweb.http.LiftServlet.service(LiftServlet.scala:93),
> >>
> >>
> net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply(HTTPProvider.scala:61),
> >>
> >>
> net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply(HTTPProvider.scala:61),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.URLRewriter$.doWith(Req.scala:618),
> >>
> >>
> net.liftweb.http.provider.HTTPProvider$class.service(HTTPProvider.scala:60),
> >> net.liftweb.http.LiftFilter.service(LiftServlet.scala:586),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$class.protected$service(ServletFilterProvider.scala:67),
> >> net.liftweb.http.LiftFilter.protected$service(LiftServlet.scala:586),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$1.apply(ServletFilterProvider.scala:67),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$1.apply(ServletFilterProvider.scala:62),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12.apply(Vars.scala:335),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10$$anonfun$apply$11.apply(Vars.scala:334),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10.apply(Vars.scala:333),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9.apply(Vars.scala:332),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:331),
> >> net.liftweb.http.RequestVarHandler$.apply(Vars.scala:250),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:61),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:61),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12.apply(Vars.scala:335),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10$$anonfun$apply$11.apply(Vars.scala:334),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9$$anonfun$apply$10.apply(Vars.scala:333),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >>
> >>
> net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$9.apply(Vars.scala:332),
> >> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71),
> >> net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:331),
> >> net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:254),
> >>
> >>
> net.liftweb.http.provider.servlet.ServletFilterProvider$class.doFilter(ServletFilterProvider.scala:60),
> >> net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:586),
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235),
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206),
> >>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233),
> >>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191),
> >>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127),
> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102),
> >>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109),
> >>
> >>
> net.stax.appserver.webapp.RequestMonitorValve.invoke(RequestMonitorValve.java:35),
> >>
> >>
> net.stax.appserver.admin.StaxApplicationQueryValve.invoke(StaxApplicationQueryValve.java:42),
> >>
> >>
> net.stax.appserver.webapp.RequestSetupValve.invoke(RequestSetupValve.java:31),
> >> org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:632),
> >>
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298),
> >>
> >>
> org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:883),
> >>
> >>
> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721),
> >>
> >>
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2258),
> >>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
> >>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
> >> java.lang.Thread.run(Thread.java:619))
> >>
> >> On Mon, Nov 8, 2010 at 12:39 PM, Ethan Jewett <esjew...@gmail.com>
> wrote:
> >> > Hmmm, Anne's user page isn't working now. Can you check the logs for
> the
> >> > last 2 hrs?
> >> >
> >> > My timeline is always like that (empty) after a server restart. I'm
> not
> >> sure
> >> > why that happens to me, but I bet it has to do with the invisible
> >> messages
> >> > in my timeline from the "every 5 mins" actions. I have been meaning to
> >> try
> >> > to refactor and evict those messages into a whole separate messaging
> >> > subsystem for the actors, but I haven't even gotten around to thinking
> >> about
> >> > if that makes sense, much less creating a Jira item for it :-)
> >> >
> >> > Ethan
> >> >
> >> > On Mon, Nov 8, 2010 at 10:10 AM, Richard Hirsch <
> hirsch.d...@gmail.com
> >> >wrote:
> >> >
> >> >> Still looks good - I'll look into the stax log every once in a while
> >> >> to see if have any more exceptions.
> >> >>
> >> >> On Mon, Nov 8, 2010 at 9:08 AM, Richard Hirsch <
> hirsch.d...@gmail.com>
> >> >> wrote:
> >> >> > Just deployed on stax with vassil's code change.
> >> >> >
> >> >> > Anne's timeline is now visible without an error. What is even
> stranger
> >> >> > is that ethan's timeline is also visible but just with my last
> >> >> > message. Normally Ethan's timeline is empty, so I was a little bit
> >> >> > surprised.
> >> >> >
> >> >> > I'll take another look in 5 minutes to see if everything is still
> >> visible
> >> >> >
> >> >> > D.
> >> >> >
> >> >> > On Sun, Nov 7, 2010 at 3:59 PM, Richard Hirsch <
> hirsch.d...@gmail.com
> >> >
> >> >> wrote:
> >> >> >> @vassil Thanks for fixing the bug - it was filling our stax log
> >> >> >>
> >> >> >> I'll do a new stax deployment tomorrow and then we'll see if the
> prob
> >> >> >> was the rss feed.
> >> >> >>
> >> >> >> D.
> >> >> >>
> >> >> >> On Sat, Nov 6, 2010 at 9:16 AM, Vassil Dichev <vdic...@apache.org
> >
> >> >> wrote:
> >> >> >>> You're right, it doesn't seem like parsing the feed should break
> the
> >> >> >>> timeline, but it's good to fix this so that we eliminate any
> doubt
> >> >> >>> that it causes problems. Besides, it's not a good idea to assume
> >> that
> >> >> >>> only correctly formatted dates will be passed our way, so I
> wanted
> >> to
> >> >> >>> put an end to ESME-275.
> >> >> >>>
> >> >> >>> I've just committed a fix and closed the issue.
> >> >> >>>
> >> >> >>> Vassil
> >> >> >>>
> >> >> >>>
> >> >> >>> On Sat, Nov 6, 2010 at 10:06 AM, Ethan Jewett <
> esjew...@gmail.com>
> >> >> wrote:
> >> >> >>>> Dick,
> >> >> >>>>
> >> >> >>>> If you want to disable my actions to test, that's fine. I'm
> fairly
> >> >> >>>> confident my actions are responsible for the stack trace you
> sent.
> >> >> >>>> (Thanks for looking in to it Vassil.)
> >> >> >>>>
> >> >> >>>> I just don't see how an issue with actions could be the cause of
> >> the
> >> >> >>>> timeline issue. As far as I know, loading a timeline does not
> >> trigger
> >> >> >>>> this action code that is failing. I could definitely be wrong,
> but
> >> I
> >> >> >>>> think there should be a second stack trace or a Lift error
> message
> >> >> >>>> that shows up in the logs when someone tries to load Anne or
> >> David's
> >> >> >>>> user page.
> >> >> >>>>
> >> >> >>>> Ethan
> >> >> >>>>
> >> >> >>>> On Saturday, November 6, 2010, Vassil Dichev <
> vdic...@apache.org>
> >> >> wrote:
> >> >> >>>>> The reason for the stack trace is that a date in an RSS feed
> >> cannot
> >> >> be
> >> >> >>>>> parsed properly, or there is no date at all (which as I see is
> >> >> allowed
> >> >> >>>>> by the RSS spec). It would help if we can find which RSS feed
> is
> >> the
> >> >> >>>>> culprit, but I will try to come up with a patch anyway.
> >> >> >>>>>
> >> >> >>>>> Vassil
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>> On Sat, Nov 6, 2010 at 9:05 AM, Richard Hirsch <
> >> >> hirsch.d...@gmail.com> wrote:
> >> >> >>>>>> I'm working on the following assumptions:
> >> >> >>>>>>
> >> >> >>>>>>   1)  that someone anne follows is the culprit
> >> >> >>>>>>   2) That the reason is some sort of an action that is called
> >> every
> >> >> 5
> >> >> >>>>>> minutes or so
> >> >> >>>>>>   3) Checking the database shows that the most of these
> actions
> >> are
> >> >> from Ethan
> >> >> >>>>>>
> >> >> >>>>>> What I'm going to try is to create a test user and then follow
> >> the
> >> >> >>>>>> users that anne follows.
> >> >> >>>>>>
> >> >> >>>>>> However, you are correct in saying that I'm following you as
> well
> >> >> and
> >> >> >>>>>> my timeline is working.
> >> >> >>>>>>
> >> >> >>>>>> If you want, we can wait until I do this test before taking
> such
> >> >> >>>>>> drastic "Big Brother" actions.
> >> >> >>>>>>
> >> >> >>>>>> D.
> >> >> >>>>>>
> >> >> >>>>>>
> >> >> >>>>>>
> >> >> >>>>>> On Fri, Nov 5, 2010 at 8:25 PM, Ethan Jewett <
> esjew...@gmail.com
> >> >
> >> >> wrote:
> >> >> >>>>>>> I knew I shouldn't have implied it might be me :-)
> >> >> >>>>>>>
> >> >> >>>>>>> I definitely have RSS actions, but I'm wondering what makes
> you
> >> >> think it's
> >> >> >>>>>>> my actions that are breaking only Anne & Dave's timelines?
> You
> >> and
> >> >> several
> >> >> >>>>>>> others follow me, and your timelines are not broken. Before
> we
> >> saw
> >> >> this sort
> >> >> >>>>>>> of thing happened because of special characters in some
> >> messages,
> >> >> right?
> >> >> >>>>>>>
> >> >> >>>>>>> I'm really wondering if the stack trace you found was the
> only
> >> >> error. I
> >> >> >>>>>>> think the stack trace you found was the issue in Jira item
> >> >> >>>>>>> https://issues.apache.org/jira/browse/ESME-275  This appears
> to
> >> >> still be
> >> >> >>>>>>> unresolved, but I don't think we ever linked it to an issue
> with
> >> >> displaying
> >> >> >>>>>>> a timeline (which should have nothing to do with a feed or
> >> action).
> >> >> >>>>>>>
> >> >> >>>>>>> Ethan
> >> >> >>>>>>>
> >> >> >>>>>>> On Fri, Nov 5, 2010 at 7:42 PM, Richard Hirsch <
> >> >> hirsch.d...@gmail.com>wrote:
> >> >> >>>>>>>
> >> >> >>>>>>>> Going through the database - looks like Ethan might be the
> >> culprit
> >> >> -
> >> >> >>>>>>>> though I don't know why.
> >> >> >>>>>>>>
> >> >> >>>>>>>> @Ethan do want to disable your rss actions manually or
> should I
> >> do
> >> >> it
> >> >> >>>>>>>> via big brother ;->
> >> >> >>>>>>>>
> >> >> >>>>>>>> D.
> >> >> >>>>>>>>
> >> >> >>>>>>>> On Fri, Nov 5, 2010 at 2:07 PM, Anne Kathrine Petterøe
> >> >> >>>>>>>> <yoji...@gmail.com> wrote:
> >> >> >>>>>>>> > LOL :-)
> >> >> >>>>>>>> >
> >> >> >>>>>>>> >
> >> >> >>>>>>>> > On 5 November 2010 13:29, Ethan Jewett <
> esjew...@gmail.com>
> >> >> wrote:
> >> >> >>>>>>>> >
> >> >> >>>>>>>> >> I hope it's not me. [Shakes in boots.]   :-)
> >> >> >>>>>>>> >>
> >> >> >>>>>>>> >> On Fri, Nov 5, 2010 at 12:16 PM, Richard Hirsch <
> >> >> hirsch.d...@gmail.com
> >> >> >>>>>>>> >> >wrote:
> >> >> >>>>>>>> >>
> >> >> >>>>>>>> >> > I can look at the DB when I get home and see who the
> >> culprit
> >> >> is.
> >> >> >>>>>>>> >> >
> >> >> >>>>>>>> >> > D.
> >> >> >>>>>>>> >> >
> >> >> >>>>>>>> >> > On Fri, Nov 5, 2010 at 11:44 AM, Anne Kathrine Petterøe
> >> >> >>>>>>>> >> > <yoji...@gmail.com> wrote:
> >> >> >>>>>>>> >> > > Do we know who has set up an action that would create
> >> the
> >> >> problem?
> >> >> >>>>>>>> >> > >
> >> >> >>>>>>>> >> > > /Anne
> >> >> >>>>>>>> >> > >
> >> >> >>>>>>>> >> > > On 5 November 2010 10:07, Ethan Jewett <
> >> esjew...@gmail.com>
> >> >> wrote:
> >> >> >>>>>>>> >> > >
> >> >> >>>>>>>> >> > >> Yup, that would explain it. When you sent the stack
> >> trace
> >> >> before,
> >> >> >>>>>>>> was
> >> >> >>>>>>>> >> > that
> >> >> >>>>>>>> >> > >> the only one that you saw in the Stax environment or
> >> where
> >> >> there
> >> >> >>>>>>>> >> others?
> >> >> >>>>>>>> >> > >>
> >> >> >>>>>>>> >> > >> Ethan
> >> >> >>>>>>>> >> > >>
> >> >> >>>>>>>> >> > >> On Fri, Nov 5, 2010 at 9:34 AM, Richard Hirsch <
> >> >> >>>>>>>> hirsch.d...@gmail.com
> >> >> >>>>>>>> >> > >> >wrote:
> >> >> >>>>> --
> >> >> >>>>> Twitter: http://twitter.com/vdichev
> >> >> >>>>> Blog: http://speaking-my-language.blogspot.com
> >> >> >>>>>
> >> >> >>>>
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>> --
> >> >> >>> Twitter: http://twitter.com/vdichev
> >> >> >>> Blog: http://speaking-my-language.blogspot.com
> >> >> >>>
> >> >> >>
> >> >> >
> >> >>
> >> >
> >>
> >
>
>
>
> --
> Twitter: http://twitter.com/vdichev
> Blog: http://speaking-my-language.blogspot.com
>

Reply via email to