View previous topic :: View next topic |
Author |
Message |
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Sun Feb 24, 2019 4:14 pm Post subject: samba-4.10.0-rc3 hangs during configure on raspi |
|
|
Dear fellow gentooers,
I have problems installing the latest samba release candidate on 32bit arm devices.
I tried it on three of them, and always it hangs during the configure phase. From the previous updates the libraries tdb, ldb, tevent and talloc are already on the latest issue, so it looks like that:
Code: | circe ~ # emerge -1a net-fs/samba
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild U *] net-fs/samba-4.10.0_rc3 [4.9.4-r1] PYTHON_SINGLE_TARGET="python3_6%* -python3_4% -python3_5% (-python3_7)" PYTHON_TARGETS="python3_6%* -python3_4% -python3_5% (-python3_7)"
Would you like to merge these packages? [Yes/No]
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) net-fs/samba-4.10.0_rc3::gentoo
...
Checking for poll : ok
Checking for posix_memalign : ok
Checking for pread : ok
Checking for _pread : not found
Checking for __pread : |
It just stops, the CPU load reduces to idle - and it just hangs.
I first tried to resolve it by MAKEOPTS="-j1" - but this did not solve the issue.
Next I tried the plain vanilla samba sources (fearing that the Samba team did mess something up, especially since there is the switch to Python 3) - but this worked without any problem.
Code: | wget https://download.samba.org/pub/samba/rc/samba-4.10.0rc3.tar.gz && \
tar -xzf samba-4.10.0rc3.tar.gz && \
cd samba-4.10.0rc3
./configure \
--prefix=/usr \
--with-piddir=/run/samba \
--disable-cups \
--libdir=/usr/lib \
--enable-fhs \
--sysconfdir=/etc \
--localstatedir=/var \
--with-modulesdir=/usr/lib/samba \
--bundled-libraries=heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE \
--disable-rpath \
--disable-rpath-install \
--nopyc \
--nopyo \
--with-acl-support \
--with-dnsupdate \
--without-ads \
--disable-cephfs \
--without-cluster-support \
--without-dmapi \
--without-fam \
--without-gpgme \
--with-json \
--disable-iprint \
--with-pam \
--with-pammodulesdir=/lib/security \
--with-quotas \
--with-syslog \
--without-systemd \
--with-winbind \
--disable-avahi \
--enable-gnutls \
--without-lttng \
--with-ldap \
--with-shared-modules= \
--builtin-libraries=NONE
....
Checking for wait4 ok
Checking for initgroups ok
Checking for pread ok
Checking for pwrite ok
Checking for strndup ok
.... |
One thing looks different: the configure in the vanilla sources apparently does lack any reference to Posix. I have check, whether I could add some posix reference to the explicit configure command on the plain vanilla sources. But in a first seach I don't find anything...
Nevertheless the big question is: how to explore, what's going wrong?
- Peter
PS: I did upgrade to profile 17.0 recently, but I did not change the CHOST... don't know, whether this could cause odd effects...
Last edited by christoph_peter_s on Fri Mar 01, 2019 3:21 pm; edited 2 times in total |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Mon Feb 25, 2019 9:33 pm Post subject: |
|
|
Things are getting worse. (
I did run the script armhf-migrate.bash.
I stated, that it was successful. And indeed it did change the CHOST variable in make.conf from something like armv7a-hardfloat-linux-gnueabi to armv7a-unknown-linux-gnueabihf. But even the very first emerge from the emerge -e @world fails:
Code: | Diese Programm wurde für armv7a-hardfloat-linux-gnueabi gebaut
Fehlermeldungen (auf Englisch) an <bug-make@gnu.org> senden.
* ERROR: dev-lang/python-exec-2.4.6::gentoo failed (compile phase):
* emake failed |
Sorry for the German messages. I'd prefer the english ones, but I need the German keyboard layout... havn't found out how to have a German locale except for english error messages.
The curious thing is this:
Code: | brutus /etc/portage # gcc-config -l
[1] armv7a-unknown-linux-gnueabihf-7.3.0 * |
Some old configuration item seems to dwell somewhere deep inside the little system...
Regards
- Peter |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 23064
|
Posted: Tue Feb 26, 2019 2:51 am Post subject: |
|
|
christoph_peter_s wrote: | Sorry for the German messages. I'd prefer the english ones, but I need the German keyboard layout... havn't found out how to have a German locale except for english error messages. | Set LC_MESSAGES=C in the build environment. You can put this in make.conf if you want it to apply to every run of emerge. |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Tue Feb 26, 2019 11:50 am Post subject: |
|
|
Dear Hu,
Thank You for the tip!
Regarding my issue: I have the hypothesis, that I got some undesired side effects when upgrading to profile 17.0. I did not dare to change the CHOST. But I did an emerge -e @world. Nevertheless the combination of profile 17.0 and CHOST="armv7a-hardfloat-linux-gnueabi" does not seem work 100% correctly.
So I decided to run the armhf-migrate.bash script to update CHOST. At first it looked well. The script did run on two machines. It completed on both. On the Raspi everything looked OK at the first glance. On the Cubieboard it didn't even change CHOST. But when examining the things closer (while trying to make distcc working) I noticed, that the CHOST settings weren't consistent.
Anyway, yesterday I did change the CHOST on the Cubieboard by hand - and now I am trying first to get that working gcc/binutils/glibc triple on both machines before re-doing the emerge -e @world. Distcc works on the Raspi (but some packages seem to fail compiling). The Cubietruck is still compiling gcc without distcc due to the only partly updated CHOST.
Any progress will be slow, but I'll keep updating.
Regards
- Peter
PS: gcc on the cubie failed - it looks like my distcc mess was responsible. I'll have another try... |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Wed Feb 27, 2019 1:04 pm Post subject: |
|
|
During emerge -e @world the configure of samba-4.10.0-rc3 did hang.
I'll cleanup my CHOST mess first before coming back to Samba. On one of the boxes DISTCC is still not working (strange thing... I can't spot hardly any difference in thier configurations), so it will take some time.
Eventually Samba 4.10 will be out. Let's see... I did anticipate some troubles with Samba 4.10 - but more to some Python issues rather than a mysterious configure-problem. At the moment it looks pretty unlikely, that the old CHOST setting was responsible for my original issue.
- peter |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Thu Feb 28, 2019 10:34 am Post subject: |
|
|
While the CHOST fixup is still running... I notice, that I might have hit this Samba bug https://bugzilla.samba.org/show_bug.cgi?id=13777. Whereas it should use Python3. Anyway, I'll try to run the samba install with a forced usage of Python 3. As soon as I got a free timeslot on one of my Raspis. |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Thu Feb 28, 2019 4:19 pm Post subject: |
|
|
christoph_peter_s wrote: |
Code: | Diese Programm wurde für armv7a-hardfloat-linux-gnueabi gebaut
Fehlermeldungen (auf Englisch) an <bug-make@gnu.org> senden.
* ERROR: dev-lang/python-exec-2.4.6::gentoo failed (compile phase):
* emake failed |
|
OK, it is now clear, that I hit that upstream Samba bug. One thing, that I do not understand so far, is why portage used Python 2.7, since Python 3.6 is defined as PYTHON_SINGLE_TARGET. Today I did set an explicit PYTHON3_6 use flag on net-fs/samba - and it started to compile... Even though the CHOST mess was not completely cleared up.
Regards
- Peter
PS: the Samba compile bug is expected to be fixed in Samba 4.10.0. |
|
Back to top |
|
|
christoph_peter_s Tux's lil' helper
Joined: 30 Nov 2015 Posts: 108
|
Posted: Fri Mar 01, 2019 3:27 pm Post subject: |
|
|
So sorry to say, the issue isn't fixed.
I wait for the official release, before I start to complain.
Code: | brutus ~ # ps -aux | grep portage
portage 16411 0.0 0.1 1912 1316 pts/1 S+ 15:51 0:00 [net-fs/samba-4.10.0_rc3] sandbox /usr/lib/portage/python3.6/ebuild.sh configure
portage 16412 0.0 0.6 8736 6016 pts/1 S+ 15:51 0:00 /bin/bash /usr/lib/portage/python3.6/ebuild.sh configure
portage 16429 0.0 0.6 9540 6052 pts/1 S+ 15:51 0:00 /bin/bash /usr/lib/portage/python3.6/ebuild.sh configure
portage 16450 0.0 0.2 5004 2272 pts/1 S+ 15:51 0:00 tee -a /var/tmp/portage/net-fs/samba-4.10.0_rc3/temp/build-.arm.log
portage 16549 4.4 3.0 2062016 29052 pts/1 Sl+ 15:51 1:18 /usr/bin/python3.6 /var/tmp/portage/net-fs/samba-4.10.0_rc3/work/samba-4.10.0rc3/buildtools/bin/waf --prefix=/usr --libdir=/usr/lib --enable -fhs --sysconfdir=/etc --localstatedir=/var --with-modulesdir=/usr/lib/samba --with-piddir=/run/samba --bundled-libraries=heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE -- builtin-libraries=NONE --disable-rpath --disable-rpath-install --nopyc --nopyo --with-acl-support --with-dnsupdate --without-ads --disable-cephfs --without-cluster-support --disable-cups --without-dmapi -- without-fam --without-gpgme --with-json --disable-iprint --with-pam --with-pammodulesdir=/lib/security --with-quotas --with-syslog --without-systemd --with-winbind --disable-avahi --enable-gnutls --without -lttng --with-ldap --with-shared-modules= configure
portage 16551 0.0 0.8 11756 8056 pts/1 S+ 15:51 0:00 /usr/bin/python3.6 -c #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2016-2018 (ita) import os, sys, traceback, base64, signal try : .import cPickle except ImportError: .import pickle as cPickle try: .import subprocess32 as subprocess except ImportError: .import subprocess try: .TimeoutExpired = subprocess.TimeoutExpired except Attr ibuteError: .class TimeoutExpired(Exception): ..pass def run(): .txt = sys.stdin.readline().strip() .if not txt: ..# parent process probably ended ..sys.exit(1) .[cmd, kwargs, cargs] = cPickle.loads(base6 4.b64decode(txt)) .cargs = cargs or {} .ret = 1 .out, err, ex, trace = (None, None, None, None) .try: ..proc = subprocess.Popen(cmd, **kwargs) ..try: ...out, err = proc.communicate(**cargs) ..except Timeo utExpired: ...if kwargs.get('start_new_session') and hasattr(os, 'killpg'): ....os.killpg(proc.pid, signal.SIGKILL) ...else: ....proc.kill() ...out, err = proc.communicate() ...exc = TimeoutExpired(proc.ar gs, timeout=cargs['timeout'], output=out) ...exc.stderr = err ...raise exc ..ret = proc.returncode .except Exception as e: ..exc_type, exc_value, tb = sys.exc_info() ..exc_lines = traceback.format_exceptio n(exc_type, exc_value, tb) ..trace = str(cmd) + '\n' + ''.join(exc_lines) ..ex = e.__class__.__name__ .# it is just text so maybe we do not need to pickle() .tmp = [ret, out, err, ex, trace] .obj = base64 .b64encode(cPickle.dumps(tmp)) .sys.stdout.write(obj.decode()) .sys.stdout.write('\n') .sys.stdout.flush() while 1: .try: ..run() .except KeyboardInterrupt: ..break
portage 16552 0.0 0.8 11756 8060 pts/1 S+ 15:51 0:00 /usr/bin/python3.6 -c #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2016-2018 (ita) import os, sys, traceback, base64, signal try : .import cPickle except ImportError: .import pickle as cPickle try: .import subprocess32 as subprocess except ImportError: .import subprocess try: .TimeoutExpired = subprocess.TimeoutExpired except Attr ibuteError: .class TimeoutExpired(Exception): ..pass def run(): .txt = sys.stdin.readline().strip() .if not txt: ..# parent process probably ended ..sys.exit(1) .[cmd, kwargs, cargs] = cPickle.loads(base6 4.b64decode(txt)) .cargs = cargs or {} .ret = 1 .out, err, ex, trace = (None, None, None, None) .try: ..proc = subprocess.Popen(cmd, **kwargs) ..try: ...out, err = proc.communicate(**cargs) ..except Timeo utExpired: ...if kwargs.get('start_new_session') and hasattr(os, 'killpg'): ....os.killpg(proc.pid, signal.SIGKILL) ...else: ....proc.kill() ...out, err = proc.communicate() ...exc = TimeoutExpired(proc.ar gs, timeout=cargs['timeout'], output=out) ...exc.stderr = err ...raise exc ..ret = proc.returncode .except Exception as e: ..exc_type, exc_value, tb = sys.exc_info() ..exc_lines = traceback.format_exceptio n(exc_type, exc_value, tb) ..trace = str(cmd) + '\n' + ''.join(exc_lines) ..ex = e.__class__.__name__ .# it is just text so maybe we do not need to pickle() .tmp = [ret, out, err, ex, trace] .obj = base64 .b64encode(cPickle.dumps(tmp)) .sys.stdout.write(obj.decode()) .sys.stdout.write('\n') .sys.stdout.flush() while 1: .try: ..run() .except KeyboardInterrupt: ..break
portage 16553 0.0 0.8 11756 8040 pts/1 S+ 15:51 0:00 /usr/bin/python3.6 -c #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2016-2018 (ita) import os, sys, traceback, base64, signal try : .import cPickle except ImportError: .import pickle as cPickle try: .import subprocess32 as subprocess except ImportError: .import subprocess try: .TimeoutExpired = subprocess.TimeoutExpired except Attr ibuteError: .class TimeoutExpired(Exception): ..pass def run(): .txt = sys.stdin.readline().strip() .if not txt: ..# parent process probably ended ..sys.exit(1) .[cmd, kwargs, cargs] = cPickle.loads(base6 4.b64decode(txt)) .cargs = cargs or {} .ret = 1 .out, err, ex, trace = (None, None, None, None) .try: ..proc = subprocess.Popen(cmd, **kwargs) ..try: ...out, err = proc.communicate(**cargs) ..except Timeo utExpired: ...if kwargs.get('start_new_session') and hasattr(os, 'killpg'): ....os.killpg(proc.pid, signal.SIGKILL) ...else: ....proc.kill() ...out, err = proc.communicate() ...exc = TimeoutExpired(proc.ar gs, timeout=cargs['timeout'], output=out) ...exc.stderr = err ...raise exc ..ret = proc.returncode .except Exception as e: ..exc_type, exc_value, tb = sys.exc_info() ..exc_lines = traceback.format_exceptio n(exc_type, exc_value, tb) ..trace = str(cmd) + '\n' + ''.join(exc_lines) ..ex = e.__class__.__name__ .# it is just text so maybe we do not need to pickle() .tmp = [ret, out, err, ex, trace] .obj = base64 .b64encode(cPickle.dumps(tmp)) .sys.stdout.write(obj.decode()) .sys.stdout.write('\n') .sys.stdout.flush() while 1: .try: ..run() .except KeyboardInterrupt: ..break
portage 16554 0.5 0.8 11836 8348 pts/1 S+ 15:51 0:09 /usr/bin/python3.6 -c #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2016-2018 (ita) import os, sys, traceback, base64, signal try : .import cPickle except ImportError: .import pickle as cPickle try: .import subprocess32 as subprocess except ImportError: .import subprocess try: .TimeoutExpired = subprocess.TimeoutExpired except Attr ibuteError: .class TimeoutExpired(Exception): ..pass def run(): .txt = sys.stdin.readline().strip() .if not txt: ..# parent process probably ended ..sys.exit(1) .[cmd, kwargs, cargs] = cPickle.loads(base6 4.b64decode(txt)) .cargs = cargs or {} .ret = 1 .out, err, ex, trace = (None, None, None, None) .try: ..proc = subprocess.Popen(cmd, **kwargs) ..try: ...out, err = proc.communicate(**cargs) ..except Timeo utExpired: ...if kwargs.get('start_new_session') and hasattr(os, 'killpg'): ....os.killpg(proc.pid, signal.SIGKILL) ...else: ....proc.kill() ...out, err = proc.communicate() ...exc = TimeoutExpired(proc.ar gs, timeout=cargs['timeout'], output=out) ...exc.stderr = err ...raise exc ..ret = proc.returncode .except Exception as e: ..exc_type, exc_value, tb = sys.exc_info() ..exc_lines = traceback.format_exceptio n(exc_type, exc_value, tb) ..trace = str(cmd) + '\n' + ''.join(exc_lines) ..ex = e.__class__.__name__ .# it is just text so maybe we do not need to pickle() .tmp = [ret, out, err, ex, trace] .obj = base64 .b64encode(cPickle.dumps(tmp)) .sys.stdout.write(obj.decode()) .sys.stdout.write('\n') .sys.stdout.flush() while 1: .try: ..run() .except KeyboardInterrupt: ..break
root 22237 0.0 0.0 2644 556 pts/3 S+ 16:20 0:00 grep --colour=auto portage
|
Or do You guys think, I should file a bug on behalf of Samba?
It is hard for me to read (maybe not just for me). But is it normal, that there is 64bit code dwelling on a 32bit system?
Best regards
Peter
PS: doing the compile with the arguments from process 16549 on the unpacked Samba sources directly does nicely run through... maybe I' missing something. But it looks pretty nasty.
PS2: when I look at the top output during the compile phase of tevent, I see Python 2.7 - and not 3.6... I have to fiddle arond a bit more...
PS3: giving it an explicit PYTHON_SINGLE_TARGET: python3_6 seems to do the trick. Which is pretty stange, as this was already set in make.conf as a general option.
PS4: this release candidate is very buggy. it definitely can even hang without any Python 2.7 around... and at all varying points of the configure, depending on the actual machine. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|