Michael,
I'm not sure what's going on.  I just added some extra debugging statements
to the acquisition/release of DB connections.

Please wait until the new version of Lift is in Hudson (or pull and build
locally... well looks like Hudson's down again... so you'll have to build
locally: http://scala-tools.org/hudson/job/lift/ ).  Then put this in Boot:

    Log.level = LiftLogLevels.Trace

The creation and release of DB connections should be logged and we can see
why a connection is being released that's already been released.

Thanks,

David


On Sat, Dec 13, 2008 at 8:07 AM, Michael <[email protected]> wrote:

>
> I'm using a 0.10 snapshot.  Here is the full stack trace:
>
> ERROR - The ActorWatcher restarted
> org.developerworks.comet.auctionac...@7303e3 because scala.MatchError:
> None
> scala.MatchError: None
>        at net.liftweb.mapper.DB$.releaseConnectionNamed(DB.scala:127)
>        at net.liftweb.mapper.DB$.use(DB.scala:283)
>        at net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$
> $doWith(DB.scala:109)
>        at net.liftweb.mapper.DB$$anon$1.apply(DB.scala:112)
>        at net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:
> 368)
>         at net.liftweb.http.S$$anonfun$net$liftweb$http$S$
> $_nest2InnerInit$1.apply(S.scala:446)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit
> (S.scala:445)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19$$anonfun$apply
> $20$$anonfun$apply$21.apply(S.scala:465)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19$$anonfun$apply
> $20.apply(S.scala:464)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19.apply(S.scala:
> 463)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1$$anonfun$apply$17$$anonfun$apply$18.apply(S.scala:462)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1$$anonfun$apply$17.apply(S.scala:461)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit
> $1.apply(S.scala:460)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:
> 459)
>        at net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$24$
> $anonfun$apply$25$$anonfun$apply$26$$anonfun$apply$27.apply(S.scala:
> 489)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$24$
> $anonfun$apply$25$$anonfun$apply$26.apply(S.scala:488)
>        at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun
> $apply$4$$anonfun$apply$5.apply(Vars.scala:150)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun
> $apply$4.apply(Vars.scala:149)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.RequestVarHandler$$anonfun$apply$3.apply
> (Vars.scala:148)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:147)
>        at net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$24$
> $anonfun$apply$25.apply(S.scala:486)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$24.apply
> (S.scala:485)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:484)
>        at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:31)
>        at net.liftweb.http.S$._init(S.scala:483)
>        at net.liftweb.http.S$.init(S.scala:329)
>        at net.liftweb.http.S$.initIfUninitted(S.scala:597)
>        at net.liftweb.http.CometActor$$anon$1.apply(CometActor.scala:
> 163)
>        at net.liftweb.http.CometActor$$anon$1.apply(CometActor.scala:
> 161)
>        at scala.actors.Reaction.run(Reaction.scala:78)
>        at scala.actors.Scheduler$$anon$2.run(Scheduler.scala:77)
>        at scala.actors.FJTaskRunner.run(Unknown Source)
>
> I put all of the code on Google Code: http://code.google.com/p/auctionnet/
> . It is a sample application I am writing for a developerWorks
> tutorial on using Lift and Comet. Anyways, the code does not do
> anything explicit with the database connections, just normal read/
> writes. There are reads and writes in the CometActor and the other
> Actor that it works with.
>
> -- Michael
>
> On Dec 13, 6:57 am, "David Pollak" <[email protected]>
> wrote:
> > What version of Lift are you using?
> >
> > Please supply the entire stack trace.
> >
> > If you have some code that reproduces the problem, that would be helpful.
> >
> > It looks like the db connection is getting closed manually and then when
> the
> > auto-close tries to close it again, the exception is thrown.
> >
> > On Dec 13, 2008 6:46 AM, "Michael" <[email protected]> wrote:
> >
> > I have a CometActor that crashes after rendering and then re-rendering
> > after it responds to a message. The stack trace that gets printed
> > looks like:
> >
> > ERROR - The ActorWatcher restarted foo.comet.myac...@1e6ee98 because
> > scala.MatchError: None
> > scala.MatchError: None
> >        at net.liftweb.mapper.DB$.releaseConnectionNamed(DB.scala:127)
> >        at net.liftweb.mapper.DB$.use(DB.scala:283)
> >        at net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$
> > $doWith(DB.scala:109)
> >        at net.liftweb.mapper.DB$$anon$1.apply(DB.scala:112)
> >        at net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:
> > 368)
> >
> > I tried putting the following in the lowPriority method:
> >
> >    override def lowPriority : PartialFunction[Any, Unit] = {
> >        case NormalMessage(a,u) => {
> >                doStuff(a,u)
> >                reRender(false)
> >        }
> >        case None => {
> >                println("None?")
> >        }
> >        case s => {
> >                println("Other " + s.toString)
> >        }
> >    }
> >
> > Nothing gets printed out before the stack trace. After the stack trace
> > I see
> >
> > Other <function>
> >
> > This repeats periodically, but the CometActor is dead. Is there
> > something bad about using a Mapper object with Actors, or is there
> > something else going on here?
>
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Collaborative Task Management http://much4.us
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to