Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 138468 - vserver 2.1.1 returns exec-ulimit Bad address error
Summary: vserver 2.1.1 returns exec-ulimit Bad address error
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo VPS Team (OBSOLETE)
URL:
Whiteboard:
Keywords:
: 138497 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-06-29 05:47 UTC by Jimmy.Jazz
Modified: 2006-09-07 09:06 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
gcc 3.4.6 gdb (gcc346-gdb.txt,2.40 KB, text/plain)
2006-08-12 00:48 UTC, Benedikt Böhm (RETIRED)
Details
gcc 4.1.1 gdb (gcc411-gdb.txt,2.42 KB, text/plain)
2006-08-12 00:49 UTC, Benedikt Böhm (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jimmy.Jazz 2006-06-29 05:47:47 UTC
Hello,

the sys-kernel/vserver-sources-2.1.1_rc21-r3 package is no more in the portage tree. In fact, i'm not sure if i'm at the right place for asking help.

Anyway, here is my problem ;)

First, vserver was working well on my computer until i decided to change for gcc 4.1.1 in place of gcc 4.2 ... and remerge the whole world again.

I tried different vserver and kernel versions, i generated new vserver client in case there was some incompatibilites between versions, but i get always the same exec-ulimit error complaining about a bad address

exec-ulimit: execv(): Bad address

The last version of the kernel that has worked perfectly was linux-2.6.16-vserver-2.1.1-rc21-r3. 

Currently, i'm using kernel 2.6.17.1 vanilla + patch-2.6.17-vs2.1.1-rc24.diff but without much success. Of course i tried gentoo 2.7.17 kernel version + vserver patch as well !

Here is my configuration:

Portage 2.1.1_pre1-r5 (default-linux/amd64/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.17.1-vs2.1.1-rc24 x86_64)=================================================================
System uname: 2.6.17.1-vs2.1.1-rc24 x86_64 AMD Athlon(tm) 64 Processor 3200+
Gentoo Base System version 1.12.1
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.4.2
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17.50.0.2
sys-devel/gcc-config: 1.3.13-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.16
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O3 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib/mozilla-thunderbird/components/myspell /usr/share/X11/xkb /var/qmail/alias /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-march=k8 -O3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict userpriv"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ ..."
LANG="fr_FR.utf-8"
LC_ALL="fr_FR.utf-8"
LDFLAGS="-Wl,-O1"
LINGUAS="fr"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/overlay"
SYNC="rsync://snowman.cryosphere.shacknet.nu/gentoo-portage"
USE="a52 aac acl alsa amd64 avi bash-completion berkdb bitmap-fonts bzip2 cairo cli crypt cups curl dbus dga dlloader dri dts dvdr eds emboss encode esd exif fam firefox flac foomaticdb gdbm gif gmp gnome gnutls gphoto2 gpm gstreamer gtk2 hal howl ieee1394 imlib isdnlog java jpeg lcms lzw lzw-tiff mad maildir mmap mng mp3 mpeg ncurses nls nptl nptlonly ogg opengl pam pcre pdflib perl png posix pppd python qt3 qt4 readline reflection sdl session speex spell spl ssl sysvipc tcpd theora threads tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 vorbis xml xorg xpm xv zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_joystick input_devices_evdev kernel_linux linguas_fr userland_GNU video_cards_radeon video_cards_fglrx video_cards_vesa video_cards_v4l"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_RSYNC_EXTRA_OPTS

and the vserver sys-cluster/util-vserver-0.30.210-r14 package.

Currently, i'm testing the last cvs version (i desinstalled util-vserver),
sys-cluster/vserver-utils-1.0.4_pre
sys-libs/libvserver-2.0_pre
dev-libs/dietlibc-0.30
dev-libs/libowfat-0.24

As i can tell, the vserver documentation is not really explicit ;)
For the moment, it is not a success story either and i continue to get an error. Not the same but always about bad address ;)

vserver start gentoo-template returns,

Failed to create new namespace: Bad address
An error occured while trying to setup the context for 'gentoo-template'
Comment 1 Jimmy.Jazz 2006-06-29 07:43:28 UTC
Here are the settings,
#
# Linux VServer
#
# CONFIG_VSERVER_LEGACY is not set
# CONFIG_VSERVER_NGNET is not set
CONFIG_VSERVER_REMAP_SADDR=y
CONFIG_VSERVER_COWBL=y
# CONFIG_VSERVER_VTIME is not set
CONFIG_VSERVER_PROC_SECURE=y
CONFIG_VSERVER_HARDCPU=y
CONFIG_VSERVER_IDLETIME=y
CONFIG_VSERVER_IDLELIMIT=y
# CONFIG_TAGGING_NONE is not set
# CONFIG_TAGGING_UID16 is not set
# CONFIG_TAGGING_GID16 is not set
CONFIG_TAGGING_ID24=y
# CONFIG_TAGGING_INTERN is not set
# CONFIG_TAGGING_RUNTIME is not set
# CONFIG_TAG_NFSD is not set
# CONFIG_PROPAGATE is not set
CONFIG_VSERVER_DEBUG=y
CONFIG_VSERVER_HISTORY=y
CONFIG_VSERVER_HISTORY_SIZE=64
CONFIG_VSERVER_MONITOR=y
CONFIG_VSERVER_MONITOR_SIZE=1024
CONFIG_VSERVER_MONITOR_SYNC=256
CONFIG_VSERVER=y
CONFIG_VSERVER_SECURITY=y
CONFIG_VSERVER_LEGACYNET=y
Comment 2 Jimmy.Jazz 2006-06-29 08:11:04 UTC
really i don't understand what append. I was using testme.sh from http://vserver.13thfloor.at/Stuff/SCRIPT/testme.sh with the sys-cluster/util-vserver-0.30.210-r14 package and it has passed all the tests !

output:

# ./testme.sh
Linux-VServer Test [V0.15] Copyright (C) 2003-2006 H.Poetzl
chcontext is working.
chbind is working.
Linux 2.6.17.1-vs2.1.1-rc24 #3 PREEMPT Wed Jun 28 19:04:34 MEST 2006 x86_64
Ea 0.30.210 236/glibc (DSa) <v13,net>
VCI: 0002:0101 236 031101f4 (KtTbnPD)
---
[000]# succeeded.
[001]# succeeded.
[011]# succeeded.
[031]# succeeded.
[101]# succeeded.
[102]# succeeded.
[201]# succeeded.
[202]# succeeded.

But the problem stays the same
Comment 3 Jimmy.Jazz 2006-06-29 08:47:56 UTC
okay!!!! i have found the culprit lol dev-libs/dietlibc

it works great with 0.28 release...

Flags i changed, 

CFLAGS="`echo $CFLAGS | /usr/bin/sed -e s/-O3/-O2/`"
CFLAGS="`echo $CFLAGS | /usr/bin/sed -e s/-fno-stack-protector-all//`"
without the above one it doesn't compile
and
CXXFLAGS="`echo $CXXFLAGS | /usr/bin/sed -e s/-O3/-O2/`"

for sys-cluster/util-vserver, i changed
CFLAGS="`echo ${CFLAGS} | /usr/bin/sed -e s/-O3/-O2/`"
CXXFLAGS="`echo $CXXFLAGS | /usr/bin/sed -e s/-O3/-O2/`"

i don't think all the modified flags are necessary

I will investigate further and let you know :)
Comment 4 Jimmy.Jazz 2006-06-29 09:12:11 UTC
summery
-------

Sure, i never compiled dietlibc 0.28 with gcc 4.1.1 and above before. Certainly because it didn't compile at all. Certainly i had upgraded dietlibc with the 0.30 version which doesn't work correctly with the util-vserver package. Here begins all my vserver issues.

What i have found,
it is not necessary to lower CFLAGS optimization flag, sys-cluster/util-vserver works well with -O3

same for dev-libs/dietlibc but -fno-stack-protector-all needs to be discarded.That flag is uncompatible with gcc 4.1.1 release

And definitely don't use the last dev-libs/dietlibc-0.30

Hope that helps someone.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2006-06-29 10:11:37 UTC
*** Bug 138497 has been marked as a duplicate of this bug. ***
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2006-06-29 10:13:19 UTC
Reopen. Don't close bugs that are not fixed in portage, please.
Comment 7 Jimmy.Jazz 2006-06-29 11:33:14 UTC
(In reply to comment #6)
> Reopen. Don't close bugs that are not fixed in portage, please.
> 

Sorry, i thought the issue was more dietlibc relevant than util-vserver. That's why i closed this one and opened Bug 138497 

Jj
Comment 8 Benedikt Böhm (RETIRED) gentoo-dev 2006-07-01 02:45:15 UTC
(In reply to comment #0)
> Hello,
> 
> the sys-kernel/vserver-sources-2.1.1_rc21-r3 package is no more in the portage
> tree. In fact, i'm not sure if i'm at the right place for asking help.
> 

the experimental kernels have moved to http://overlays.gentoo.org/proj/vps


(In reply to comment #4)
> -fno-stack-protector-all needs to be
> discarded.That flag is uncompatible with gcc 4.1.1 release
> 

there is no -fno-stack-protector-all in the ebuilds, dietlibc or util-vserver...
Comment 9 Jimmy.Jazz 2006-07-01 07:43:30 UTC
> 
> there is no -fno-stack-protector-all in the ebuilds, dietlibc or
> util-vserver...
> 

Hello,

you over see it, please read again or run a "grep no-stack-protector-all  /var/log/ebuild/dev-libs:dietlibc-0.28*" :)

As i said above dietlibc 0.30 doesn't work with vserver-utils or util-vserver (i didn't test 0.29 !).

To compile dietlibc-0.28 with gcc 4.1.1 you need to take "no-stack-protector-all" off from the package. Otherwise it doesn't compile as you can see below:

>>> Compiling source in /var/tmp/portage/dietlibc-0.28/work/dietlibc-0.28 ...
mkdir bin-x86_64
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c x86_64/start.S -o bin-x86_64/start.o
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c dyn_start.c -o bin-x86_64/dyn_start.o
cc1: erreur: option "-fno-stack-protector-all" de la ligne de commande non reconnue
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c dyn_stop.c -o bin-x86_64/dyn_stop.o
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c x86_64/unified.S -o bin-x86_64/unified.o
make: *** [bin-x86_64/start.o] Erreur 1
make: *** Attente des t
Comment 10 Jimmy.Jazz 2006-07-01 07:43:30 UTC
> 
> there is no -fno-stack-protector-all in the ebuilds, dietlibc or
> util-vserver...
> 

Hello,

you over see it, please read again or run a "grep no-stack-protector-all  /var/log/ebuild/dev-libs:dietlibc-0.28*" :)

As i said above dietlibc 0.30 doesn't work with vserver-utils or util-vserver (i didn't test 0.29 !).

To compile dietlibc-0.28 with gcc 4.1.1 you need to take "no-stack-protector-all" off from the package. Otherwise it doesn't compile as you can see below:

>>> Compiling source in /var/tmp/portage/dietlibc-0.28/work/dietlibc-0.28 ...
mkdir bin-x86_64
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c x86_64/start.S -o bin-x86_64/start.o
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c dyn_start.c -o bin-x86_64/dyn_start.o
cc1: erreur: option "-fno-stack-protector-all" de la ligne de commande non reconnue
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c dyn_stop.c -o bin-x86_64/dyn_stop.o
gcc -I. -isystem include -march=k8 -O2 -pipe -D__dietlibc__ -fno-stack-protector-all -fno-stack-protector -c x86_64/unified.S -o bin-x86_64/unified.o
make: *** [bin-x86_64/start.o] Erreur 1
make: *** Attente des tâches non terminées....
cc1: erreur: option "-fno-stack-protector-all" de la ligne de commande non reconnue
make: *** [bin-x86_64/dyn_stop.o] Erreur 1
cc1: erreur: option "-fno-stack-protector-all" de la ligne de commande non reconnue
make: *** [bin-x86_64/dyn_start.o] Erreur 1
make: *** wait: Aucun processus enfant. Arrêt.

!!! ERROR: dev-libs/dietlibc-0.28 failed.
Call stack:
  ebuild.sh, line 1545:   Called dyn_compile
  ebuild.sh, line 940:   Called src_compile
  dietlibc-0.28.ebuild, line 42:   Called die

!!! emake failed

Comment 11 Benedikt Böhm (RETIRED) gentoo-dev 2006-08-12 00:46:12 UTC
after having investigated this a bit more, we have found out that the environ pointer to execve gets corrupted with gcc 4.1.1 but not with gcc 3.4.6 (no other versions tested)

see the attached gdb outputs, you will notice that %rdx is corrupted in the gcc411 register dump...

unfortunately we haven't found a fix yet, since all other execve (in util-vserver) work great..
Comment 12 Benedikt Böhm (RETIRED) gentoo-dev 2006-08-12 00:48:55 UTC
Created attachment 94035 [details]
gcc 3.4.6 gdb
Comment 13 Benedikt Böhm (RETIRED) gentoo-dev 2006-08-12 00:49:07 UTC
Created attachment 94036 [details]
gcc 4.1.1 gdb
Comment 14 Benedikt Böhm (RETIRED) gentoo-dev 2006-09-07 04:22:33 UTC
this should be fixed in 0.30-r1, please test
Comment 15 Jimmy.Jazz 2006-09-07 09:06:22 UTC
(In reply to comment #13)
> this should be fixed in 0.30-r1, please test
> 
Thx,

dev-libs/dietlibc-0.30-r1 works great now with sys-cluster/util-vserver-0.30.210-r18
and linux-2.6.17-gentoo-r7 + patch-2.6.17.11-vs2.1.1-rc31.diff

Jj