Идентификаторы объекта в jstack

Я зашел в тупик в моей системе, и вот выдержки из двух jstacks, взятых с интервалом в несколько минут

Jstack 1

Found one Java-level deadlock:
=============================
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2":
  waiting to lock monitor 0x00007f1ad075d2e8 (object 0x00007f1aed690ff8, a com.mysql.jdbc.JDBC4ResultSet),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1"
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1":
  waiting to lock monitor 0x00007f1ad075d390 (object 0x00007f1aed4ca6c8, a com.mysql.jdbc.JDBC4Connection),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2"

Jstack 2

Found one Java-level deadlock:
=============================
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2":
  waiting to lock monitor 0x00007f1ad075d2e8 (object 0x00007f1aec62c8a8, a com.mysql.jdbc.JDBC4ResultSet),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1"
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1":
  waiting to lock monitor 0x00007f1ad075d390 (object 0x00007f1aec6077b8, a com.mysql.jdbc.JDBC4Connection),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2"

В обоих jstacks идентификаторы монитора - это одинаковые 0x00007f1ad075d2e8 и 0x00007f1ad075d390, но идентификаторы объектов разные.

Очевидно, что существует тупик, почему идентификатор объекта отличается? Разве они не должны быть одинаковыми?

0 ответов

Другие вопросы по тегам