Author: spadkins
Date: Wed Feb 17 14:05:11 2010
New Revision: 13829
Modified:
p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm
Log:
avoid Signal 6 errors
Modified: p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm Wed Feb 17
14:05:11 2010
@@ -39,10 +39,23 @@
# my $home = eval { local $SIG{__DIE__}; (getpwuid($>))[7] } || $ENV{HOME};
# This causes a signal 6 abort/segmentation fault if Oracle establishes a
# connection before (getpwuid($>))[7] is called.
+#
# Example, MIME::Lite would fail to send emails if the Oracle connection
# came before the MIME::Lite send().
-# This is because the order and types of shared objects loaded.
+#
+# What was happening was that if an Oracle connection was established before
MIME::Lite::send() was called,
+# the network/authentication shared libraries that are needed by the Oracle
shared libraries get linked a certain way.
+#
+# If the Oracle connection was established after the MIME::Lite::send() was
called,
+# completely different network/authentication shared libraries would be
dynamically linked in.
+# Evidently, both sets of shared libraries implement the same API's, but one
set of them was not compatible
+# with what we were doing.
+#
+# The following two statements are in order to bring consistency so that the
same set of dynamic
+# libraries are used every time.
+
my @pwentry = getpwuid($>);
+use Net::SMTP;
sub _init2 {
&App::sub_entry if ($App::trace);