Issue 38037 - intermittent failure of install ...
Summary: intermittent failure of install ...
Status: CLOSED DUPLICATE of issue 35209
Alias: None
Product: udk
Classification: Code
Component: code (show other issues)
Version: 680m62
Hardware: All All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: mmeeks
QA Contact: issues@udk
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-29 05:50 UTC by mmeeks
Modified: 2007-06-18 10:16 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description mmeeks 2004-11-29 05:50:43 UTC
So; my make_installer.pl fails with:

[Java framework] The JRE specified by the bootstrap variable UNO_JAVA_JFW_JREHOME
  or  UNO_JAVA_JFW_ENV_JREHOME could not be recognized. Check the values and
make sure that you use a plug-in library that can recognize that JRE.

This is particularly painful.

It appeared this warning could be reproduced reliably by just running 'javaldx';
however having run 'strace' on javaldx it now works 100% of the time. Either
there is some shared state somewhere - or this is nastily broken.

Of course - the OSL API is nastily broken on Unix, since it doesn't hide EINTR
from you still [why!?]. Perhaps this:

--- jvmfwk/plugins/sunmajor/pluginlib/util.cxx
+++ jvmfwk/plugins/sunmajor/pluginlib/util.cxx
@@ -210,6 +210,9 @@ FileHandleReader::readLine(rtl::OString 
                 m_nIndex = 0;
                 m_nSize = static_cast< int >(nRead);
                 break;
+
+                       case osl_File_E_INTR:
+                               continue;
 
             default:
                 return RESULT_ERROR;

Would help - although, I can't verify that.
Comment 1 mmeeks 2004-11-29 08:00:25 UTC
s/shared state/stored state/, & I guess the EINTR thing is rather a shot in the
dark, hopefully there is some more sensible/simple explanation.
Comment 2 kay.ramme 2004-11-29 09:25:16 UTC
Michael, taking a look into sal/osl/unx/signal.c shows, that it sets SA_RESTART
for signals which we actively handle, but not for signals we don't handle
(SIG_IGN). So, if you may give the following a shot:

sal/osl/unx/signal.c:288	ign.sa_flags   = SA_RESTART;

My understanding is, that EINTR shouldn't happen again then.

Comment 3 mmeeks 2004-11-30 09:20:42 UTC
Oh; quite possibly :-)

It turns out however - that my report was somewhat inaccurate - I was silently
mounting /proc without thinking since strace was failing - and this is the
repeatable difference.

Without /proc mounted it seems the jre doesn't function sensibly anymore - it's
not clear that this is really an OO.o bug per-se.

Any chance of a:

#ifdef LINUX
if (access ("/proc/meminfo", R_OK))
   fprintf (stderr, "javaldx will not work without /proc mounted\n");
#endif

or somesuch ?
Comment 4 kay.ramme 2004-12-09 08:39:33 UTC
Michael, this problem is related to some old SAL stuff accessing the
"/proc/XXXX/cmdline" file for finding out the command line arguments. This has
been fixed with 35209.

Please verify that the problem has indeed vanished, so that I can give this
issue back to you :-).
Comment 5 kay.ramme 2004-12-15 12:18:51 UTC
Michael, please take this back as double 35209. If 35209 is not what you meant,
please send it back.
Comment 6 mmeeks 2004-12-15 14:29:30 UTC
Sure; verifying this is a pain anyhow - I believe (from my strace) it might have
been a jvm bug anyway. So - marking as a duplicate to clear from the radar.

*** This issue has been marked as a duplicate of 35209 ***
Comment 7 kay.ramme 2007-06-18 10:16:55 UTC
Closing ...