Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Apr 2013 17:51:30 +0200
From:      Fabian Keil <freebsd-listen@fabiankeil.de>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        FreeBSD Current <freebsd-current@FreeBSD.org>
Subject:   Re: panic: solaris assert: sa.sa_magic == 0x2F505A (0x4d5ea364 == 0x2f505a), file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c, line: 625
Message-ID:  <20130401175126.1d28b0f4@fabiankeil.de>
In-Reply-To: <5159A517.5070802@FreeBSD.org>
References:  <20130401161813.6e42e2a1@fabiankeil.de> <5159A517.5070802@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/N2bYarDm3IOk.gkHS0qDag6
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Andriy Gapon <avg@FreeBSD.org> wrote:

> on 01/04/2013 17:18 Fabian Keil said the following:
> > #10 0xffffffff8130323f in assfail3 (a=3D<value optimized out>, lv=3D<va=
lue optimized out>, op=3D<value optimized out>, rv=3D<value optimized out>,=
 f=3D<value optimized out>, l=3D<value optimized out>)
> >     at /usr/src/sys/modules/opensolaris/../../cddl/compat/opensolaris/k=
ern/opensolaris_cmn_err.c:89
> > #11 0xffffffff8117924e in zfs_space_delta_cb (bonustype=3D<value optimi=
zed out>, data=3D0xffffff8015eeb8c0, userp=3D0xfffffe004261c640, groupp=3D0=
xfffffe004261c648)
> >     at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/comm=
on/fs/zfs/zfs_vfsops.c:625
> > #12 0xffffffff8110003b in dmu_objset_userquota_get_ids (dn=3D0xfffffe00=
4261c358, before=3D0, tx=3D<value optimized out>) at /usr/src/sys/modules/z=
fs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c:1249
> > #13 0xffffffff811071b6 in dnode_sync (dn=3D0xfffffe004261c358, tx=3D0xf=
ffffe00186e1300) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris=
/uts/common/fs/zfs/dnode_sync.c:554
> > #14 0xffffffff810ff98b in dmu_objset_sync_dnodes (list=3D0xfffffe00691a=
5250, newlist=3D<value optimized out>, tx=3D<value optimized out>)
> >     at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/comm=
on/fs/zfs/dmu_objset.c:910
> > #15 0xffffffff810ff825 in dmu_objset_sync (os=3D0xfffffe00691a5000, pio=
=3D<value optimized out>, tx=3D0xfffffe00186e1300)
> >     at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/comm=
on/fs/zfs/dmu_objset.c:1027
> > #16 0xffffffff8110cb0d in dsl_dataset_sync (ds=3D0xfffffe001f3d0c00, zi=
o=3D0x780, tx=3D0xfffffe00186e1300) at /usr/src/sys/modules/zfs/../../cddl/=
contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c:1411
> > #17 0xffffffff8111399a in dsl_pool_sync (dp=3D0xfffffe0069ec4000, txg=
=3D<value optimized out>) at /usr/src/sys/modules/zfs/../../cddl/contrib/op=
ensolaris/uts/common/fs/zfs/dsl_pool.c:409
> > #18 0xffffffff8112f0ee in spa_sync (spa=3D0xfffffe0050f00000, txg=3D329=
2) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs=
/zfs/spa.c:6328
> > #19 0xffffffff81137c45 in txg_sync_thread (arg=3D0xfffffe0069ec4000) at=
 /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/=
txg.c:493
> > #20 0xffffffff80569c1a in fork_exit (callout=3D0xffffffff811378d0 <txg_=
sync_thread>, arg=3D0xfffffe0069ec4000, frame=3D0xffffff80dc9d6c00) at /usr=
/src/sys/kern/kern_fork.c:991
> > #21 0xffffffff8086a1ee in fork_trampoline () at exception.S:602
> > #22 0x0000000000000000 in ?? ()
> > Current language:  auto; currently minimal
> > (kgdb) f 12
> > #12 0xffffffff8110003b in dmu_objset_userquota_get_ids (dn=3D0xfffffe00=
4261c358, before=3D0, tx=3D<value optimized out>) at /usr/src/sys/modules/z=
fs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c:1249
> > 1249		error =3D used_cbs[os->os_phys->os_type](dn->dn_bonustype, data,
> > (kgdb) p *dn
>=20
> Could you please also provide *dn->dn_phys?

vmcore.12:

(kgdb)  p *dn->dn_phys
Cannot access memory at address 0xffffff8019492800
(kgdb)  p *dn->dn_dbuf
$1 =3D {db =3D {db_object =3D 0, db_offset =3D 28491776, db_size =3D 16384,=
 db_data =3D 0xffffff8019492000}, db_objset =3D 0xfffffe002bc62400, db_dnod=
e_handle =3D 0xfffffe002bc62420, db_parent =3D 0xfffffe005f1071c0,=20
  db_hash_next =3D 0x0, db_blkid =3D 1739, db_blkptr =3D 0xffffff801936c580=
, db_level =3D 0 '\0', db_mtx =3D {lock_object =3D {lo_name =3D 0xffffffff8=
11d8696 "db->db_mtx", lo_flags =3D 40960000, lo_data =3D 0,=20
      lo_witness =3D 0x0}, sx_lock =3D 1}, db_state =3D DB_CACHED, db_holds=
 =3D {rc_count =3D 2}, db_buf =3D 0xfffffe005f34c798, db_changed =3D {cv_de=
scription =3D 0xffffffff811d86a2 "db->db_changed", cv_waiters =3D 0},=20
  db_data_pending =3D 0xfffffe004bcc0c00, db_last_dirty =3D 0xfffffe004bcc0=
c00, db_link =3D {list_next =3D 0xfffffe005f3506d0, list_prev =3D 0xfffffe0=
030c392a0}, db_user_ptr =3D 0xfffffe005f269000,=20
  db_user_data_ptr_ptr =3D 0x0, db_evict_func =3D 0xffffffff81105770 <dnode=
_buf_pageout>, db_immediate_evict =3D 0 '\0', db_freed_in_flight =3D 0 '\0'=
, db_dirtycnt =3D 1 '\001'}

vmcore.13:

(kgdb)  p *dn->dn_phys
Cannot access memory at address 0xffffff8015eeb800
(kgdb) p *dn->dn_dbuf
$1 =3D {db =3D {db_object =3D 0, db_offset =3D 28491776, db_size =3D 16384,=
 db_data =3D 0xffffff8015eeb000}, db_objset =3D 0xfffffe00691a5000, db_dnod=
e_handle =3D 0xfffffe00691a5020, db_parent =3D 0xfffffe004254ab60,=20
  db_hash_next =3D 0x0, db_blkid =3D 1739, db_blkptr =3D 0xffffff8015d65580=
, db_level =3D 0 '\0', db_mtx =3D {lock_object =3D {lo_name =3D 0xffffffff8=
11d8696 "db->db_mtx", lo_flags =3D 40960000, lo_data =3D 0,=20
      lo_witness =3D 0x0}, sx_lock =3D 1}, db_state =3D DB_CACHED, db_holds=
 =3D {rc_count =3D 2}, db_buf =3D 0xfffffe0042bedcf0, db_changed =3D {cv_de=
scription =3D 0xffffffff811d86a2 "db->db_changed", cv_waiters =3D 0},=20
  db_data_pending =3D 0xfffffe00406d6500, db_last_dirty =3D 0xfffffe00406d6=
500, db_link =3D {list_next =3D 0xfffffe0042758c10, list_prev =3D 0xfffffe0=
069cab5f8}, db_user_ptr =3D 0xfffffe0069f70000,=20
  db_user_data_ptr_ptr =3D 0x0, db_evict_func =3D 0xffffffff81105770 <dnode=
_buf_pageout>, db_immediate_evict =3D 0 '\0', db_freed_in_flight =3D 0 '\0'=
, db_dirtycnt =3D 1 '\001'}

vmcore.14:
(kgdb)  p *dn->dn_phys
Cannot access memory at address 0xffffff8014d21800
(kgdb)  p *dn->dn_dbuf
$1 =3D {db =3D {db_object =3D 0, db_offset =3D 28508160, db_size =3D 16384,=
 db_data =3D 0xffffff8014d21000}, db_objset =3D 0xfffffe0073372000, db_dnod=
e_handle =3D 0xfffffe0073372020, db_parent =3D 0xfffffe00369eec40,=20
  db_hash_next =3D 0x0, db_blkid =3D 1740, db_blkptr =3D 0xffffff8014ac3600=
, db_level =3D 0 '\0', db_mtx =3D {lock_object =3D {lo_name =3D 0xffffffff8=
11d8696 "db->db_mtx", lo_flags =3D 40960000, lo_data =3D 0,=20
      lo_witness =3D 0x0}, sx_lock =3D 1}, db_state =3D DB_CACHED, db_holds=
 =3D {rc_count =3D 2}, db_buf =3D 0xfffffe0036b759d8, db_changed =3D {cv_de=
scription =3D 0xffffffff811d86a2 "db->db_changed", cv_waiters =3D 0},=20
  db_data_pending =3D 0xfffffe0034467700, db_last_dirty =3D 0xfffffe0034467=
700, db_link =3D {list_next =3D 0xfffffe0036c17970, list_prev =3D 0xfffffe0=
0737bc950}, db_user_ptr =3D 0xfffffe00369fe000,=20
  db_user_data_ptr_ptr =3D 0x0, db_evict_func =3D 0xffffffff81105770 <dnode=
_buf_pageout>, db_immediate_evict =3D 0 '\0', db_freed_in_flight =3D 0 '\0'=
, db_dirtycnt =3D 1 '\001'}

vmcore.15:
(kgdb)  p *dn->dn_phys
Cannot access memory at address 0xffffff8030e73800
(kgdb) p *dn->dn_dbuf
$1 =3D {db =3D {db_object =3D 0, db_offset =3D 28508160, db_size =3D 16384,=
 db_data =3D 0xffffff8030e73000}, db_objset =3D 0xfffffe0028fe2800, db_dnod=
e_handle =3D 0xfffffe0028fe2820, db_parent =3D 0xfffffe005ac4dd20,=20
  db_hash_next =3D 0x0, db_blkid =3D 1740, db_blkptr =3D 0xffffff8030d49600=
, db_level =3D 0 '\0', db_mtx =3D {lock_object =3D {lo_name =3D 0xffffffff8=
11d8696 "db->db_mtx", lo_flags =3D 40960000, lo_data =3D 0,=20
      lo_witness =3D 0x0}, sx_lock =3D 1}, db_state =3D DB_CACHED, db_holds=
 =3D {rc_count =3D 2}, db_buf =3D 0xfffffe0010130a68, db_changed =3D {cv_de=
scription =3D 0xffffffff811d86a2 "db->db_changed", cv_waiters =3D 0},=20
  db_data_pending =3D 0xfffffe0057b85200, db_last_dirty =3D 0xfffffe0057b85=
200, db_link =3D {list_next =3D 0xfffffe005ad57890, list_prev =3D 0xfffffe0=
0568765f8}, db_user_ptr =3D 0xfffffe005a7a1000,=20
  db_user_data_ptr_ptr =3D 0x0, db_evict_func =3D 0xffffffff81105770 <dnode=
_buf_pageout>, db_immediate_evict =3D 0 '\0', db_freed_in_flight =3D 0 '\0'=
, db_dirtycnt =3D 1 '\001'}

> > The offending sa_magic in the panic message is always the same.
>=20
> Which part, left side or right side?

I meant the left side, but it looks like I only compared the first two pani=
cs:

fk@r500 /usr/crash $grep ^panic: core.txt.1[2-5]
core.txt.12:panic: solaris assert: sa.sa_magic =3D=3D 0x2F505A (0x4d5ea364 =
=3D=3D 0x2f505a), file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensol=
aris/uts/common/fs/zfs/zfs_vfsops.c, line: 625
core.txt.13:panic: solaris assert: sa.sa_magic =3D=3D 0x2F505A (0x4d5ea364 =
=3D=3D 0x2f505a), file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensol=
aris/uts/common/fs/zfs/zfs_vfsops.c, line: 625
core.txt.14:panic: solaris assert: sa.sa_magic =3D=3D 0x2F505A (0x4be9810a =
=3D=3D 0x2f505a), file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensol=
aris/uts/common/fs/zfs/zfs_vfsops.c, line: 625
core.txt.15:panic: solaris assert: sa.sa_magic =3D=3D 0x2F505A (0x4be9810a =
=3D=3D 0x2f505a), file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensol=
aris/uts/common/fs/zfs/zfs_vfsops.c, line: 625

The matches seem to correlate with the matching dn->dn_dbuf->db->db_offset
values above.

Fabian

--Sig_/N2bYarDm3IOk.gkHS0qDag6
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEARECAAYFAlFZrQEACgkQBYqIVf93VJ3e1QCeODdEVTiD6TksAu/p815aOPmE
40QAnAhaLasLYhXXXRCfMydh3GPIPq2l
=OcRh
-----END PGP SIGNATURE-----

--Sig_/N2bYarDm3IOk.gkHS0qDag6--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130401175126.1d28b0f4>