IIUG IDS 9.40 don't start on Linux Debian
Posted in 2003
Topics: Platform-Specific Issues, Versions, Editions & End-of-Life
IIUG
IDS 9.40 don't start on Linux Debian Woody 3.0
with libc 2.2.5-11.5 and kernel 2.4.20.
1. oninit -iy
{Error writing 'Universal Server Message Log' errno =
9/usr/informix/online.log}
2. onstat -
{
*** WARNING: Informix Dynamic Server is no longer running. ***
*** WARNING: Informix Dynamic Server is no longer running. ***
Changing data structure forced command termination.
}
3. cut /usr/informix/online.log
{
Informix Dynamic Server Started.
Event alarms enabled. ALARMPROG ='/usr/informix/etc/log_full.sh'
Booting Language <c> from module <>
Loading Module <CNULL>
Booting Language <builtin> from module <>
Loading Module <BUILTINNULL>
}
--------------Boundary-00=_RU150FM4OBK2XF7XQHBJ
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset="iso-8859-1"
FYI, please see the Debian 3.0r1 related section below.
Andreas
-----------------------------------------------------------------
The following article provides information about requirements for=20
installation of IDS 9.40.UC1 on RedHat, SuSE, Mandrake and Debian=20
Linux Distributions.
Content
=3D=3D=3D=3D=3D=3D=3D
1. General requirements
2. Known installation problems and solutions
3. Using shared memory (excerpt from IDS machine notes)
1. General requirements
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
- i686 compatible processor
- disable Intel Hyper-Threading
- Linux kernel 2.4.7 or higher
- glibc 2.2.4 or higher (i686 version)
- do not use Reiser file system (reiserfs) for chunks due to=20
performance reasons
- further information is available in IDS machine notes:=20
$INFORMIXDIR/release/en_us/0333/ids_machine_notes_9.40.txt
2. Known installation problems and solutions
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The listed distributions match the Linux kernel and glibc=20
requirements. Please note not all distributions install or deliver a=20
i686 version of glibc by default.
RedHat 7.2
----------
No installation problems known.
RedHat 7.3
----------
No installation problems known.
RedHat 8
--------
Update glibc to fix a TCP/IP problem. Available at
ftp://updates.redhat.com/8.0/en/os/i686/glibc-2.3.2-4.80.6.i686.rpm
RedHat 9
--------
"Incorrectly built binary which accesses errno, h_errno or _res=20
directly. Needs to be fixed." messages. Use 9.40.UC2 when available.
RedHat AS2.1
------------
No installation problems known.
SuSE 7.3
--------
i686 version of glibc not available. Upgrade to a higher SuSE version=20
is recommended.
SuSE 8.0
--------
Update to the i686 version of glibc available on CD #1:
rpm -U --oldpackage ./unsorted/glibc-i686/glibc-2.2.5-26.i686.rpm
Update to hwinfo-4.27. Available at=20
ftp://ftp.suse.com/pub/suse/i386/update/8.0/d1/hwinfo.rpm
SuSE 8.1
--------
Update to glibc-2.2.5-165. Available at=20
ftp://ftp.suse.com/pub/suse/i386/update/8.1/rpm/i686/glibc-2.2.5-165.i686=
=2Erpm
SuSE 8.2
--------
Update to the i686 version of glibc available on CD #1:
rpm -U --oldpackage ./suse/i686/glibc-2.3.2-5.i686.rpm
SLES 8 (United Linux 1.0)
-------------------------
Update to glibc-2.2.5-165. Available at http://support.suse.de/psdb
Mandrake 9.0
------------
No installation problems known.
Mandrake 9.1
------------
No installation problems known.
Debian 3.0r1=20
------------
Build a patched libpthread.so (see attached=20
libifxpthread-glibc225.patch) using following steps as user root:
# cp libifxpthread-glibc225.patch /tmp
Install kernel headers (Debian 3.0r1 official binary CD #6):
# apt-cdrom
# apt-get install kernel-headers
compile glibc sources (Debian 3.0r1 official source CD #1):
# apt-cdrom
# mkdir source
# cd source
# apt-get --compile source glibcPatch the glibc sources:
# cd glibc-2.2.5/glibc-2.2.5/linuxthreads
# cat /tmp/libifxpthread-glibc225.patch | patch -bCompile libpthread.so:
# cd ../../i386-linux/obj
# make
Install libifxpthread.so.4:
# export INFORMIXDIR=3D/opt/informix (example, IDS 9.40 directory)
# cp linuxthreads/libpthread.so $INFORMIXDIR/lib/libifxpthread.so.4
# chown informix:informix $INFORMIXDIR/lib/libifxpthread.so.4
# chmod 755 $INFORMIXDIR/lib/libifxpthread.so.4
# ln -s $INFORMIXDIR/lib/libifxpthread.so.4 /var/lib/libpthread.so.0Check oninit for right path to libpthread.so.0:
# ldd $INFORMIXDIR/bin/oninit
libpthread.so.0 =3D> /var/lib/libpthread.so.0
3. Using shared memory (excerpt from IDS machine notes)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
The ONCONFIG variable SHMBASE should be set to the following:
SHMBASE 0x10000000L
The default start address for shared libraries on Linux is 0x40000000.
Therefore, the maximum available space for shared memory is 768MB when=20
using 0x10000000L as the SHMBASE value.
SHMBASE can also be set to start above the shared library addresses.=20
When doing so, ensure that dynamically loaded shared libraries do not=20
collide with the shared memory segments.
The address space layout can be checked by the following command:
$ cat /proc/[pid of oninit process]/maps
Beginning with kernel version 2.4.19, Linux provides a way to=20
dynamically change the default start address for shared libraries on=20
a per-process basis. This feature is available, if the file=20
/proc/$$/mapped_base exists.
To change the start address for shared libraries of the oninit=20
processes, the new start address needs to be specified by the user=20
root in the shell from where oninit is started. For example, the=20
following sets the start address of shared libraries to 0xB0000000L:
$ echo $$29712
$ su root
Password:
# echo -1342177280 > /proc/29712/mapped_base
# exit
$ oninit
Assuming the onconfig parameter SHMBASE is 0x10000000L, this gives=20
2.5GB of contiguous address space available for the database server.
--------------Boundary-00=_RU150FM4OBK2XF7XQHBJ
Content-Transfer-Encoding: 7bit
Content-Type: text/x-diff;
charset="iso-8859-1";
name="libifxpthread-glibc225.patch"
Content-Disposition: attachment; filename="libifxpthread-glibc225.patch"
--- ./internals.h.ori Wed Apr 23 15:09:34 2003
+++ ./internals.h Wed Apr 23 15:18:39 2003
@@ -267,6 +267,15 @@
extern char *__pthread_initial_thread_bos;
+/* lowest bottom of stack of any other thread ever allocated
+ This is used for checking stack pointer between this value
+ and __pthread_initial_thread_bos to check other threads
+ before checking initial threads stack. This enables switching
+ the stack of the initial thread (in user level multithreading)
+ and make thread_self() working correctly. see also internals.h */
+
+extern char *__pthread_other_threads_lowest_bos;
+
/* Indicate whether at least one thread has a user-defined stack (if 1),
or all threads have stacks supplied by LinuxThreads (if 0). */
@@ -382,16 +391,27 @@
return THREAD_SELF;
#else
char *sp = CURRENT_STACK_FRAME;
- if (sp >= __pthread_initial_thread_bos)
- return &__pthread_initial_thread;
- else if (sp >= __pthread_manager_thread_bos
- && sp < __pthread_manager_thread_tos)
+ if (sp >= __pthread_manager_thread_bos
+ && sp < __pthread_manager_thread_tos)
return &__pthread_manager_thread;
- else if (__pthread_nonstandard_stacks)
- return __pthread_find_self();
- else
#ifdef _STACK_GROWS_DOWN
- return (pthread_descr)(((unsigned long)sp | (STACK_SIZE-1))+1) - 1;
+ else
+ {
+ if(__pthread_nonstandard_stacks)@@NL@
Related threads
- Conversion to differeent characters sets
- Problem in changing locale via dbexport/dbimport
- RE: openlink error "Unable to load locale categories"