Uploaded image for project: 'Enterprise Social Messaging Environment (ESME)'
  1. Enterprise Social Messaging Environment (ESME)
  2. ESME-145

Deep recursive call when retrying to get a DB connection

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • Release 1.0-RC2
    • Backlog
    • Server
    • None
    • Latest ESME out of SVN 18.12.2009

    Description

      It seems that bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279) retries to get a connection after 10 seconds.
      It does a recursive call to do so and since no tail-recursion optimization is kicking in I think this is not a good idea and should be changed.
      The stacktrace is very long:

      "32640132@qtp-18149218-105" prio=6 tid=0x4c4f5000 nid=0x1b34 in Object.wait() [0
      x4e19b000..0x4e19fc80]
      java.lang.Thread.State: TIMED_WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)

      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at bootstrap.liftweb.DBVendor$.newConnection(Boot.scala:279)
      • locked <0x09682bd8> (a bootstrap.liftweb.DBVendor$)
        at net.liftweb.mapper.DB$$anonfun$1$$anonfun$apply$1.apply(DB.scala:90)
        at net.liftweb.mapper.DB$$anonfun$1$$anonfun$apply$1.apply(DB.scala:90)
        at net.liftweb.common.EmptyBox.or(Box.scala:374)
        at net.liftweb.mapper.DB$$anonfun$1.apply(DB.scala:90)
        at net.liftweb.mapper.DB$$anonfun$1.apply(DB.scala:90)
        at net.liftweb.common.Full.flatMap(Box.scala:332)
        at net.liftweb.mapper.DB$.newConnection(DB.scala:90)
        at net.liftweb.mapper.DB$.getConnection(DB.scala:186)
        at net.liftweb.mapper.DB$.use(DB.scala:446)
        at net.liftweb.mapper.KeyedMetaMapper$class.findDbByKey(MetaMapper.scala
        :1566)
        at org.apache.esme.model.User$.findDbByKey(User.scala:49)
        at net.liftweb.mapper.KeyedMetaMapper$class.findDbByKey(MetaMapper.scala
        :1562)
        at org.apache.esme.model.User$.findDbByKey(User.scala:49)
        at net.liftweb.mapper.KeyedMetaMapper$$anonfun$find$2.apply(MetaMapper.s
        cala:1547)
        at net.liftweb.mapper.KeyedMetaMapper$$anonfun$find$2.apply(MetaMapper.s
        cala:1547)
        at net.liftweb.common.Full.flatMap(Box.scala:332)
        at net.liftweb.mapper.KeyedMetaMapper$class.find(MetaMapper.scala:1547)
        at org.apache.esme.model.User$.find(User.scala:49)
        at org.apache.esme.model.User$curUser$$anonfun$$init$$2$$anonfun$apply$1
        .apply(User.scala:172)
        at org.apache.esme.model.User$curUser$$anonfun$$init$$2$$anonfun$apply$1
        .apply(User.scala:172)
        at net.liftweb.common.Full.flatMap(Box.scala:332)

      This may cause a stack overflow and cause an out of memory exception and potentially even crash the JVM.
      The fix should be relatively simple and low risk.

      Regards,
      Markus

      Attachments

        Activity

          People

            Unassigned Unassigned
            kohlerm Markus Kohler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: