Re: SIGSEGV caused by libgconf-2.so.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 04 August 2006 10:53, Mario Torre wrote:
> Il giorno ven, 04/08/2006 alle 10.13 +1000, Raif S. Naffah ha scritto:
> > On Friday 04 August 2006 09:49, Raif S. Naffah wrote:
> > > On Friday 04 August 2006 09:32, Mario Torre wrote:
> > > > Il giorno ven, 04/08/2006 alle 09.12 +1000, Raif S. Naffah ha scritto:
> > > > > i'm getting a segmentation fault caused by /usr/lib/libgconf-2.so.4
> > > > > (FC5) when trying to run jamvm with Classpath (both CVS Head)...
> > > > > anybody else is seeing this?
> > > >
> > > > Do you have a test case for that?
> > >
> > > here is how i can trigger it:
> > >
> > > import java.util.prefs.Preferences;
> > >
> > > public class Hello {
> > >   public static final void main(String[] args) {
> > >     Preferences prefs = Preferences.systemNodeForPackage(Hello.class);
> > >     int lastSerialNumber = prefs.getInt("LAST_SERIAL_NUMBER", 0) + 1;
> > >     prefs.putInt("LAST_SERIAL_NUMBER", lastSerialNumber);
> > >   }
> > > }
>
> I can't reproduce.
>
> Moreover, you get a warning if you put this into the default package (it
> does not cause harm), but other than that, it is fine (the warning is
> normal).
>
> Anyway, Can you try the attached patch and see if it works?

i'll do that soon.


> > in addition to the above, when i configure Classpath with
> > --disable-default-preferences-peer, and try to run the same code (as
> > above) i get:
>
> Well, sorry this is my fault, I hope to fix this tomorrow, as I'm not an
> autoconf expert, so I have to look at it in more details (and now I
> really need some sleep).
>
> There should not be any --disable-default-preferences-peer.
>
> The preference flags are intended to use this way:
>
> --disable-gconf-peer: disable the gconf backend
> --enable-default-preferences-peer=gnu.java.util.prefs.FileBasedFactory:
> use another backend, not the default (everything that this default is,
> may also not be gconf).

i'm attaching a patch that fixes this configuration issue.


> This means that you can build the preference backend but with another
> default, or you can totally disable the preference backend.
>
> I guess that --disable-default-preferences-peer should not create any
> key in the META-INF directory.
>
> The correct name for this flag should really be
> --with-default-preferences-peer...
>
> The exceptions are normal, it should revert to a sane default if
> everything else fails. This should be the FileBasedPreferences, can you
> please confirm this? What happened after the error?

as i mentioned earlier a seg fault; i.e. the VM exists.


> Sorry for the confusion, and thanks for pointing me out to this

no worries!  thanks for looking into it.


cheers;
rsn
Index: configure.ac
===================================================================
RCS file: /cvsroot/classpath/classpath/configure.ac,v
retrieving revision 1.176
diff -u -r1.176 configure.ac
--- configure.ac	2 Aug 2006 23:28:12 -0000	1.176
+++ configure.ac	4 Aug 2006 01:00:03 -0000
@@ -85,13 +85,15 @@
 dnl -----------------------------------------------------------
 dnl Default Preference Backend
 dnl -----------------------------------------------------------
-AC_ARG_ENABLE(default-preferences-peer,
-  AS_HELP_STRING([--enable-default-preferences-peer],
-                 [fully qualified class name of default Preferences API Backend]))
-DEFAULT_PREFS_PEER=$enable_default_preferences_peer
-if test "$DEFAULT_PREFS_PEER" = ""; then
-   DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory
-fi
+AC_ARG_ENABLE([default-preferences-peer],
+              [AS_HELP_STRING([--enable-default-preferences-peer],
+                              [fully qualified class name of default Preferences API Backend [default=gnu.java.util.prefs.GConfBasedFactory])])],
+              [case "${enableval}" in
+                yes) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory  ;;
+                no) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory  ;;
+                *) DEFAULT_PREFS_PEER=${enableval} ;;
+              esac],
+              [DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory])
 dnl AC_SUBST(DEFAULT_PREFS_PEER)

 dnl -----------------------------------------------------------

[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux