Details
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