Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Dec 2013 11:08:11 +0100 (CET)
From:      krichy@tvnetwork.hu
To:        freebsd-fs@freebsd.org
Subject:   kern/184677
Message-ID:  <alpine.DEB.2.10.1312161059150.7004@krichy.tvnetwork.hu>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--1030603365-1718570176-1387188491=:7004
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

Dear devs,

I've attached a patch, which makes the recursive lockmgr disappear, and 
makes the reported bug to disappear. I dont know if I followed any 
guidelines well, or not, but at least it works for me. Please some 
ZFS/FreeBSD fs expert review it, and fix it where it needed.

But unfortunately, my original problem is still not solved, maybe the same 
as Ryan's: 
http://lists.freebsd.org/pipermail/freebsd-fs/2013-December/018707.html

Tracing the problem down is that zfsctl_snapdir_lookup() tries to acquire 
spa_namespace_lock while when finishing a zfs send -R does a 
zfsdev_close(), and that also holds the same mutex. And this causes a 
deadlock scenario. I looked at illumos's code, and for some reason they 
use another mutex on zfsdev_close(), which therefore may not deadlock with 
zfsctl_snapdir_lookup(). But I am still investigating the problem.

I would like to help making ZFS more stable on freebsd also with its whole 
functionality. I would be very thankful if some expert would give some 
advice, how to solve these bugs. PJD, Steven, Xin?

Thanks in advance,


Kojedzinszky Richard
Euronet Magyarorszag Informatikai Zrt.
--1030603365-1718570176-1387188491=:7004
Content-Type: TEXT/x-diff; name=184677.patch
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1312161108110.7004@krichy.tvnetwork.hu>
Content-Description: 
Content-Disposition: attachment; filename=184677.patch

Y29tbWl0IDc5NjVlMDFmY2E3OTE4N2Q4MTViOGE4NjU3MGY1MDU0N2QwMGU1
MzENCkF1dGhvcjogUmljaGFyZCBLb2plZHppbnN6a3kgPGtyaWNoeUBjZmxp
bnV4Lmh1Pg0KRGF0ZTogICBNb24gRGVjIDE2IDA5OjU5OjU3IDIwMTMgKzAx
MDANCg0KICAgIFpGUyBsb2NrIG9yZGVyaW5nIGZpeA0KDQpkaWZmIC0tZ2l0
IGEvc3lzL2NkZGwvY29tcGF0L29wZW5zb2xhcmlzL2tlcm4vb3BlbnNvbGFy
aXNfbG9va3VwLmMgYi9zeXMvY2RkbC9jb21wYXQvb3BlbnNvbGFyaXMva2Vy
bi9vcGVuc29sYXJpc19sb29rdXAuYw0KaW5kZXggOTQzODNkNi4uMjI1NTIx
YSAxMDA2NDQNCi0tLSBhL3N5cy9jZGRsL2NvbXBhdC9vcGVuc29sYXJpcy9r
ZXJuL29wZW5zb2xhcmlzX2xvb2t1cC5jDQorKysgYi9zeXMvY2RkbC9jb21w
YXQvb3BlbnNvbGFyaXMva2Vybi9vcGVuc29sYXJpc19sb29rdXAuYw0KQEAg
LTgxLDYgKzgxLDggQEAgdHJhdmVyc2Uodm5vZGVfdCAqKmN2cHAsIGludCBs
a3R5cGUpDQogCSAqIHByb2dyZXNzIG9uIHRoaXMgdm5vZGUuDQogCSAqLw0K
IA0KKwl2bl9sb2NrKGN2cCwgbGt0eXBlKTsNCisNCiAJZm9yICg7Oykgew0K
IAkJLyoNCiAJCSAqIFJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgbW91bnQgY2hh
aW4/DQpAQCAtODksMTMgKzkxLDcgQEAgdHJhdmVyc2Uodm5vZGVfdCAqKmN2
cHAsIGludCBsa3R5cGUpDQogCQlpZiAodmZzcCA9PSBOVUxMKQ0KIAkJCWJy
ZWFrOw0KIAkJZXJyb3IgPSB2ZnNfYnVzeSh2ZnNwLCAwKTsNCi0JCS8qDQot
CQkgKiB0dnAgaXMgTlVMTCBmb3IgKmN2cHAgdm5vZGUsIHdoaWNoIHdlIGNh
bid0IHVubG9jay4NCi0JCSAqLw0KLQkJaWYgKHR2cCAhPSBOVUxMKQ0KLQkJ
CXZwdXQoY3ZwKTsNCi0JCWVsc2UNCi0JCQl2cmVsZShjdnApOw0KKwkJdnB1
dChjdnApOw0KIAkJaWYgKGVycm9yKQ0KIAkJCXJldHVybiAoZXJyb3IpOw0K
IA0KZGlmZiAtLWdpdCBhL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMv
dXRzL2NvbW1vbi9mcy9nZnMuYyBiL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNv
bGFyaXMvdXRzL2NvbW1vbi9mcy9nZnMuYw0KaW5kZXggNTk5NDRhMS4uY2U0
M2ZmZiAxMDA2NDQNCi0tLSBhL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFy
aXMvdXRzL2NvbW1vbi9mcy9nZnMuYw0KKysrIGIvc3lzL2NkZGwvY29udHJp
Yi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL2dmcy5jDQpAQCAtNDQ4LDcg
KzQ0OCw3IEBAIGdmc19sb29rdXBfZG90KHZub2RlX3QgKip2cHAsIHZub2Rl
X3QgKmR2cCwgdm5vZGVfdCAqcHZwLCBjb25zdCBjaGFyICpubSkNCiAJCQlW
Tl9IT0xEKHB2cCk7DQogCQkJKnZwcCA9IHB2cDsNCiAJCX0NCi0JCXZuX2xv
Y2soKnZwcCwgTEtfRVhDTFVTSVZFIHwgTEtfUkVUUlkpOw0KKwkJdm5fbG9j
aygqdnBwLCBMS19FWENMVVNJVkUgfCBMS19SRVRSWSB8IExLX0NBTlJFQ1VS
U0UpOw0KIAkJcmV0dXJuICgwKTsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL3N5
cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMv
emZzX2N0bGRpci5jIGIvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91
dHMvY29tbW9uL2ZzL3pmcy96ZnNfY3RsZGlyLmMNCmluZGV4IDI4YWIxZmEu
LjlhMDU5NzYgMTAwNjQ0DQotLS0gYS9zeXMvY2RkbC9jb250cmliL29wZW5z
b2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3pmc19jdGxkaXIuYw0KKysrIGIv
c3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pm
cy96ZnNfY3RsZGlyLmMNCkBAIC0xMTIsNiArMTEyLDMwIEBAIHNuYXBlbnRy
eV9jb21wYXJlKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpDQogCQly
ZXR1cm4gKDApOw0KIH0NCiANCitzdGF0aWMgdm9pZA0KK3NuYXBkaXJfZW50
cnlfcmVtb3ZlX2ZyZWUoemZzY3RsX3NuYXBkaXJfdCAqc2RwLCB6ZnNfc25h
cGVudHJ5X3QgKnNlcCkNCit7DQorCWF2bF9yZW1vdmUoJnNkcC0+c2Rfc25h
cHMsIHNlcCk7DQorCWttZW1fZnJlZShzZXAtPnNlX25hbWUsIHN0cmxlbihz
ZXAtPnNlX25hbWUpICsgMSk7DQorCWttZW1fZnJlZShzZXAsIHNpemVvZiAo
emZzX3NuYXBlbnRyeV90KSk7DQorfQ0KKw0KK3N0YXRpYyB6ZnNjdGxfc25h
cGRpcl90Kg0KK3NuYXBzaG90X2dldF9zbmFwZGlyKHZub2RlX3QgKnZwLCB2
bm9kZV90ICoqZHZwcCkNCit7DQorCWdmc19kaXJfdCAqZHAgPSB2cC0+dl9k
YXRhOw0KKwkqZHZwcCA9IGRwLT5nZnNkX2ZpbGUuZ2ZzX3BhcmVudDsNCisJ
emZzY3RsX3NuYXBkaXJfdCAqc2RwOw0KKw0KKwlWTl9IT0xEKCpkdnBwKTsN
CisJVk9QX1VOTE9DSyh2cCwgMCk7DQorCXZuX2xvY2soKmR2cHAsIExLX1NI
QVJFRCB8IExLX1JFVFJZIHwgTEtfQ0FOUkVDVVJTRSk7DQorCXNkcCA9ICgq
ZHZwcCktPnZfZGF0YTsNCisJVk9QX1VOTE9DSygqZHZwcCwgMCk7DQorDQor
CXJldHVybiAoc2RwKTsNCit9DQorDQogI2lmZGVmIHN1bg0KIHZub2Rlb3Bz
X3QgKnpmc2N0bF9vcHNfcm9vdDsNCiB2bm9kZW9wc190ICp6ZnNjdGxfb3Bz
X3NuYXBkaXI7DQpAQCAtMTAxMiw3ICsxMDM2LDEzIEBAIHpmc2N0bF9zbmFw
ZGlyX2xvb2t1cChhcCkNCiAJCQkvKg0KIAkJCSAqIFRoZSBzbmFwc2hvdCB3
YXMgdW5tb3VudGVkIGJlaGluZCBvdXIgYmFja3MsDQogCQkJICogdHJ5IHRv
IHJlbW91bnQgaXQuDQorCQkJICogQ29uY3VycmVudCB6ZnNjdGxfc25hcHNo
b3RfaW5hY3RpdmUoKSB3b3VsZCByZW1vdmUgb3VyIGVudHJ5DQorCQkJICog
c28gZG8gdGhpcyBvdXJzZWx2ZXMsIGFuZCBtYWtlIGEgZnJlc2ggbmV3IG1v
dW50Lg0KIAkJCSAqLw0KKwkJCXNuYXBkaXJfZW50cnlfcmVtb3ZlX2ZyZWUo
c2RwLCBzZXApOw0KKwkJCXZwdXQoKnZwcCk7DQorCQkJLyogZmluZCBuZXcg
cGxhY2UgZm9yIHNlcCBlbnRyeSAqLw0KKwkJCWF2bF9maW5kKCZzZHAtPnNk
X3NuYXBzLCAmc2VhcmNoLCAmd2hlcmUpOw0KIAkJCVZFUklGWSh6ZnNjdGxf
c25hcHNob3Rfem5hbWUoZHZwLCBubSwgTUFYTkFNRUxFTiwgc25hcG5hbWUp
ID09IDApOw0KIAkJCWdvdG8gZG9tb3VudDsNCiAJCX0gZWxzZSB7DQpAQCAt
MTAyOCw2ICsxMDU4LDcgQEAgemZzY3RsX3NuYXBkaXJfbG9va3VwKGFwKQ0K
IAkJcmV0dXJuIChlcnIpOw0KIAl9DQogDQorZG9tb3VudDoNCiAJLyoNCiAJ
ICogVGhlIHJlcXVlc3RlZCBzbmFwc2hvdCBpcyBub3QgY3VycmVudGx5IG1v
dW50ZWQsIGxvb2sgaXQgdXAuDQogCSAqLw0KQEAgLTEwNjgsNyArMTA5OSw2
IEBAIHpmc2N0bF9zbmFwZGlyX2xvb2t1cChhcCkNCiAJYXZsX2luc2VydCgm
c2RwLT5zZF9zbmFwcywgc2VwLCB3aGVyZSk7DQogDQogCWRtdV9vYmpzZXRf
cmVsZShzbmFwLCBGVEFHKTsNCi1kb21vdW50Og0KIAltb3VudHBvaW50X2xl
biA9IHN0cmxlbihkdnAtPnZfdmZzcC0+bW50X3N0YXQuZl9tbnRvbm5hbWUp
ICsNCiAJICAgIHN0cmxlbigiLyIgWkZTX0NUTERJUl9OQU1FICIvc25hcHNo
b3QvIikgKyBzdHJsZW4obm0pICsgMTsNCiAJbW91bnRwb2ludCA9IGttZW1f
YWxsb2MobW91bnRwb2ludF9sZW4sIEtNX1NMRUVQKTsNCkBAIC0xMzUwLDkg
KzEzODAsNyBAQCB6ZnNjdGxfc25hcGRpcl9pbmFjdGl2ZShhcCkNCiAJICov
DQogCW11dGV4X2VudGVyKCZzZHAtPnNkX2xvY2spOw0KIAl3aGlsZSAoKHNl
cCA9IGF2bF9maXJzdCgmc2RwLT5zZF9zbmFwcykpICE9IE5VTEwpIHsNCi0J
CWF2bF9yZW1vdmUoJnNkcC0+c2Rfc25hcHMsIHNlcCk7DQotCQlrbWVtX2Zy
ZWUoc2VwLT5zZV9uYW1lLCBzdHJsZW4oc2VwLT5zZV9uYW1lKSArIDEpOw0K
LQkJa21lbV9mcmVlKHNlcCwgc2l6ZW9mICh6ZnNfc25hcGVudHJ5X3QpKTsN
CisJCXNuYXBkaXJfZW50cnlfcmVtb3ZlX2ZyZWUoc2RwLCBzZXApOw0KIAl9
DQogCW11dGV4X2V4aXQoJnNkcC0+c2RfbG9jayk7DQogCWdmc19kaXJfaW5h
Y3RpdmUodnApOw0KQEAgLTE0NjMsMTcgKzE0OTEsMTkgQEAgemZzY3RsX3Nu
YXBzaG90X2luYWN0aXZlKGFwKQ0KIAl6ZnNfc25hcGVudHJ5X3QgKnNlcCwg
Km5leHQ7DQogCWludCBsb2NrZWQ7DQogCXZub2RlX3QgKmR2cDsNCisJZ2Zz
X2Rpcl90ICpkcDsNCiANCi0JaWYgKHZwLT52X2NvdW50ID4gMCkNCi0JCWdv
dG8gZW5kOw0KLQ0KLQlWRVJJRlkoZ2ZzX2Rpcl9sb29rdXAodnAsICIuLiIs
ICZkdnAsIGNyLCAwLCBOVUxMLCBOVUxMKSA9PSAwKTsNCi0Jc2RwID0gZHZw
LT52X2RhdGE7DQotCVZPUF9VTkxPQ0soZHZwLCAwKTsNCisJLyogVGhpcyBp
cyBmb3IgYWNjZXNzaW5nIHRoZSByZWFsIHBhcmVudCBkaXJlY3RseSwgd2l0
aG91dCBhIHBvc3NpYmxlIGRlYWRsb2NrDQorCSAqIHdpdGggemZzY3RsX3Nu
YXBkaXJfbG9va3VwKCkuIFRoZSByZWxlYXNlIG9mIGxvY2sgb24gdnAgYW5k
IGxvY2sgb24gZHZwIHByb3ZpZGVzDQorCSAqIHRoZSBzYW1lIGxvY2sgb3Jk
ZXIgYXMgaW4gemZzY3RsX3NuYXBzaG90X2xvb2t1cCgpLg0KKwkgKi8NCisJ
c2RwID0gc25hcHNob3RfZ2V0X3NuYXBkaXIodnAsICZkdnApOw0KIA0KIAlp
ZiAoIShsb2NrZWQgPSBNVVRFWF9IRUxEKCZzZHAtPnNkX2xvY2spKSkNCiAJ
CW11dGV4X2VudGVyKCZzZHAtPnNkX2xvY2spOw0KIA0KKwl2bl9sb2NrKHZw
LCBMS19FWENMVVNJVkUgfCBMS19SRVRSWSk7DQorDQogCUFTU0VSVCghdm5f
aXNtbnRwdCh2cCkpOw0KIA0KIAlzZXAgPSBhdmxfZmlyc3QoJnNkcC0+c2Rf
c25hcHMpOw0KQEAgLTE0ODEsOSArMTUxMSw3IEBAIHpmc2N0bF9zbmFwc2hv
dF9pbmFjdGl2ZShhcCkNCiAJCW5leHQgPSBBVkxfTkVYVCgmc2RwLT5zZF9z
bmFwcywgc2VwKTsNCiANCiAJCWlmIChzZXAtPnNlX3Jvb3QgPT0gdnApIHsN
Ci0JCQlhdmxfcmVtb3ZlKCZzZHAtPnNkX3NuYXBzLCBzZXApOw0KLQkJCWtt
ZW1fZnJlZShzZXAtPnNlX25hbWUsIHN0cmxlbihzZXAtPnNlX25hbWUpICsg
MSk7DQotCQkJa21lbV9mcmVlKHNlcCwgc2l6ZW9mICh6ZnNfc25hcGVudHJ5
X3QpKTsNCisJCQlzbmFwZGlyX2VudHJ5X3JlbW92ZV9mcmVlKHNkcCwgc2Vw
KTsNCiAJCQlicmVhazsNCiAJCX0NCiAJCXNlcCA9IG5leHQ7DQpAQCAtMTQ5
NCw3ICsxNTIyLDYgQEAgemZzY3RsX3NuYXBzaG90X2luYWN0aXZlKGFwKQ0K
IAkJbXV0ZXhfZXhpdCgmc2RwLT5zZF9sb2NrKTsNCiAJVk5fUkVMRShkdnAp
Ow0KIA0KLWVuZDoNCiAJLyoNCiAJICogRGlzcG9zZSBvZiB0aGUgdm5vZGUg
Zm9yIHRoZSBzbmFwc2hvdCBtb3VudCBwb2ludC4NCiAJICogVGhpcyBpcyBz
YWZlIHRvIGRvIGJlY2F1c2Ugb25jZSB0aGlzIGVudHJ5IGhhcyBiZWVuIHJl
bW92ZWQNCkBAIC0xNTk1LDIwICsxNjIyLDE4IEBAIHpmc2N0bF9zbmFwc2hv
dF9sb29rdXAoYXApDQogc3RhdGljIGludA0KIHpmc2N0bF9zbmFwc2hvdF92
cHRvY25wKHN0cnVjdCB2b3BfdnB0b2NucF9hcmdzICphcCkNCiB7DQotCXpm
c3Zmc190ICp6ZnN2ZnMgPSBhcC0+YV92cC0+dl92ZnNwLT52ZnNfZGF0YTsN
Ci0Jdm5vZGVfdCAqZHZwLCAqdnA7DQorCXZub2RlX3QgKnZwID0gYXAtPmFf
dnA7DQorCXZub2RlX3QgKmR2cDsNCiAJemZzY3RsX3NuYXBkaXJfdCAqc2Rw
Ow0KIAl6ZnNfc25hcGVudHJ5X3QgKnNlcDsNCiAJaW50IGVycm9yOw0KIA0K
LQlBU1NFUlQoemZzdmZzLT56X2N0bGRpciAhPSBOVUxMKTsNCi0JZXJyb3Ig
PSB6ZnNjdGxfcm9vdF9sb29rdXAoemZzdmZzLT56X2N0bGRpciwgInNuYXBz
aG90IiwgJmR2cCwNCi0JICAgIE5VTEwsIDAsIE5VTEwsIGtjcmVkLCBOVUxM
LCBOVUxMLCBOVUxMKTsNCi0JaWYgKGVycm9yICE9IDApDQotCQlyZXR1cm4g
KGVycm9yKTsNCi0Jc2RwID0gZHZwLT52X2RhdGE7DQorCXNkcCA9IHNuYXBz
aG90X2dldF9zbmFwZGlyKHZwLCAmZHZwKTsNCiANCiAJbXV0ZXhfZW50ZXIo
JnNkcC0+c2RfbG9jayk7DQorDQorCXZuX2xvY2sodnAsIExLX0VYQ0xVU0lW
RSB8IExLX1JFVFJZKTsNCisNCiAJc2VwID0gYXZsX2ZpcnN0KCZzZHAtPnNk
X3NuYXBzKTsNCiAJd2hpbGUgKHNlcCAhPSBOVUxMKSB7DQogCQl2cCA9IHNl
cC0+c2Vfcm9vdDsNCg==

--1030603365-1718570176-1387188491=:7004--



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