Finally I managed to solve this issue, maybe is not related to ZFS itself, but to Solaris version, Solaris 11 builds and OpenSolaris will all crash with this problem when a file download is completed, I noticed that "Alfred" also report this, after the small patch everything work as expected, I have aMule on Opensolaris 2008.11 & Solaris 11 snv_105 running without any problems now, Im not that great producing patches so probably is not acceptable on configure part, I just posted here so anyone with this problem can also enjoy aMule, is a delight getting aMule running without problems on Solaris/OpenSolaris.
Thanks & Best Regards,
Carlos Almeida,
--- aMule-2.2.3.orig/acinclude.m4 2008-11-22 00:46:13.000000000 +0000
+++ aMule-2.2.3/acinclude.m4 2009-01-17 23:01:11.750522270 +0000
@@ -95,6 +95,10 @@
RESOLV_LIB="-lresolv -lnsl"
X11LIBS="-lX11"
LIBS="$LIBS -lrt"
+ AS_IF([test x"`uname -s`" = xSunOS && test 0`uname -r | cut -f 2 -d "."` -eq 11 ],
+ [
+ MULECPPFLAGS="-D__SOLARIS11__"
+ ],[])
;;
*netbsd*)
SYS=netbsd
diff -urN aMule-2.2.3.orig/src/PlatformSpecific.cpp aMule-2.2.3/src/PlatformSpecific.cpp
--- aMule-2.2.3.orig/src/PlatformSpecific.cpp 2008-07-29 12:27:11.000000000 +0100
+++ aMule-2.2.3/src/PlatformSpecific.cpp 2009-01-17 23:53:52.784163189 +0000
@@ -241,6 +241,19 @@
#endif
#include <common/StringFunctions.h>
+#ifdef __SOLARIS11__
+static struct mnttab *
+mygetmntent(FILE *f)
+{
+ static struct mnttab mt;
+ int status;
+
+ if ((status = getmntent(f, &mt)) == 0)
+ return (&mt);
+ return (NULL);
+ }
+#endif
+
static PlatformSpecific::EFSType doGetFilesystemType(const CPath& path)
{
struct mnttab *entry = NULL;
@@ -251,8 +264,11 @@
if (mnttab == NULL) {
return PlatformSpecific::fsOther;
}
-
+#ifdef __SOLARIS11__
+ while ((entry = mygetmntent(mnttab)) != NULL) {
+#else
while (getmntent(mnttab, entry) == 0) {
+#endif
if (entry->mnt_mountp) {
wxString dir = char2unicode(entry->mnt_mountp);
if (dir == path.GetRaw().Mid(0, dir.Length())) {