Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
samba-4.10.0-rc3 hangs during configure on raspi
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Sun Feb 24, 2019 4:14 pm    Post subject: samba-4.10.0-rc3 hangs during configure on raspi Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Mon Feb 25, 2019 9:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23064

PostPosted: Tue Feb 26, 2019 2:51 am    Post subject: Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Tue Feb 26, 2019 11:50 am    Post subject: Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Wed Feb 27, 2019 1:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Thu Feb 28, 2019 10:34 am    Post subject: Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Thu Feb 28, 2019 4:19 pm    Post subject: Reply with quote

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
View user's profile Send private message
christoph_peter_s
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2015
Posts: 108

PostPosted: Fri Mar 01, 2019 3:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Page 1 of 1

 
Jump to:  
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