On Sat, May 19, 2018 at 02:08:55PM +0200, Peter J. Philipp wrote:
> > panic: kernel diagnostic assertion "_kernel_lock_held()" failed in file "/us

It is /usr/src/sys/kern/uipc_socket2.c, line 314

   302  void
   303  soassertlocked(struct socket *so)
   304  {
   305          switch (so->so_proto->pr_domain->dom_family) {
   306          case PF_INET:
   307          case PF_INET6:
   308                  NET_ASSERT_LOCKED();
   309                  break;
   310          case PF_UNIX:
   311          case PF_ROUTE:
   312          case PF_KEY:
   313          default:
*  314                  KERNEL_ASSERT_LOCKED();
   315                  break;
   316          }
   317  }

> It just panic'ed again 5 min ago.

It is not a matter of time, but of transfered bytes.  It is triggered
in /usr/src/sys/netinet/ip_esp.c, line 436

   433          /* Notify on soft expiration */
   434          if ((tdb->tdb_flags & TDBF_SOFT_BYTES) &&
   435              (tdb->tdb_cur_bytes >= tdb->tdb_soft_bytes)) {
*  436                  pfkeyv2_expire(tdb, SADB_EXT_LIFETIME_SOFT);
   437                  tdb->tdb_flags &= ~TDBF_SOFT_BYTES;       /* Turn off 
checking */
   438          }

After a certain amount of traffic, the key is expired.  The kernel
wants to send a message to iked, but it has not acquired the porpper
lock.

Default in iked is
#define IKED_LIFETIME_BYTES     536870912 /* 512 Mb */
I think you can change it in iked.conf
     lifetime time [bytes bytes]

bluhm

Reply via email to