Skip to contentSkip to conversation

Buildbot Failures

Qemu-devel Superseded Charlie Shepherd 5 participants 12 messages Aug 29, 2013 – Sep 12, 2013

lore
Share & tools
lore
#0 lore raw

Hi all,

This is an attempt to do some triaging of the 18 current buildbot failures[1].

default_ppc:
http://buildbot.b1-systems.de/qemu/builders/default_ppc/builds/729/steps/compile/logs/stdio

Quoted 5 lines

LINK ppc-linux-user/qemu-ppc
target-ppc/translate.o:(.text+0x53518): undefined reference to `tcg_conqt_i64'
collect2: ld returned 1 exit status
make[1]: *** [qemu-ppc] Error 1
make: *** [subdir-ppc-linux-user] Error 2

This only failed last night, I'm not sure where the reference to tcg_conqt_i64 came from but it's a recent commit that could probably be bisected.

default_x86_64_rhel61:
http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel61/builds/698/steps/test/logs/stdio

Quoted 4 lines

GTESTER check-qtest-i386
main-loop: WARNING: I/O thread spun for 1000 iterations
**
ERROR:tests/libqtest.c:69:init_socket: assertion failed (ret != -1): (-1 != -1)

This looks like a failure to initialise a socket in tests/libqtest.c, possibly due to /tmp/ not being accessible?

default_x86_64_rhel5:
http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel5/builds/684/steps/compile/logs/stdio

Quoted 5 lines

File "/home/buildbot/slave-public/default_x86_64_rhel5/build/scripts/qapi-visit.py", line 23
full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
^
SyntaxError: invalid syntax
make: *** [qapi-visit.h] Error 1

This syntax was introduced in Python 2.5, patch to follow to convert this to valid Python 2.4 syntax.

default_openbsd_current (offline):
http://buildbot.b1-systems.de/qemu/builders/default_openbsd_current/builds/509/steps/compile/logs/stdio

Quoted 6 lines

AS optionrom/multiboot.o
Building optionrom/multiboot.img
ld: multiboot.o: relocation R_X86_64_16 can not be used when making a shared object; recompile with -fPIC multiboot.o: could not read symbols: Bad value
gmake[1]: *** [multiboot.img] Error 1
gmake: *** [romsubdir-optionrom] Error 2

This has been offline for a few weeks, I wonder if this issue has been fixed in master since?

default_openbsd_4.9:
http://buildbot.b1-systems.de/qemu/builders/default_openbsd_4.9/builds/700/steps/test/logs/stdio

Quoted 6 lines

tests/test-aio.o(.text+0x3df): In function `test_source_timer_schedule':
: undefined reference to pipe2' tests/test-aio.o(.text+0x4baf): In function test_timer_schedule':
: undefined reference to `pipe2'
collect2: ld returned 1 exit status
gmake: *** [tests/test-aio] Error 1

Commit b53edf971 broke this, pipe2 is a Linux-specific function. Its availability can be tested for with CONFIG_PIPE2.

default_mingw32:
http://buildbot.b1-systems.de/qemu/builders/default_mingw32/builds/698/steps/test/logs/stdio

Quoted 6 lines

CC tests/test-aio.o
tests/test-aio.c: In function 'test_timer_schedule':
tests/test-aio.c:378: warning: implicit declaration of function 'pipe2' tests/test-aio.c:378: warning: nested extern declaration of 'pipe2' tests/test-aio.c:378: error: 'O_NONBLOCK' undeclared (first use in this function) tests/test-aio.c:378: error: (Each undeclared identifier is reported only once

Quoted 8 lines

tests/test-aio.c:378: error: for each function it appears in.) tests/test-aio.c:379: warning: implicit declaration of function 'aio_set_fd_handler' tests/test-aio.c:379: warning: nested extern declaration of 'aio_set_fd_handler' tests/test-aio.c:399: warning: implicit declaration of function 'sleep' tests/test-aio.c:399: warning: nested extern declaration of 'sleep' tests/test-aio.c: In function 'test_source_timer_schedule':
tests/test-aio.c:719: error: 'O_NONBLOCK' undeclared (first use in this function)
make: *** [tests/test-aio.o] Error 1

Commit b53edf971 broke this too - pipe2, O_NONBLOCK and sleep are all unavailable on MingGW. The test executables don't run from either checking the logs, but getting it compiling would be a good start.

default_i386_macosx (offline)
http://buildbot.b1-systems.de/qemu/builders/default_i386_macosx/builds/129/steps/git/logs/stdio

Quoted 1 line

fatal: Unable to look up git.qemu-project.org (port 9418) (Temporary failure in name resolution)

Is this builder in use? It's been offline for a long time.

block_openbsd_current:
block_openbsd_4.9:
block_mingw32:

The same errors as their non block counterparts.

trivial-patches_x86_64_debian_6_0:
http://buildbot.b1-systems.de/qemu/builders/trivial-patches_x86_64_debian_6_0/builds/717/steps/compile/logs/stdio

Quoted 5 lines

block/ssh.o: In function `connect_to_ssh':
ssh.c:(.text+0xf03): undefined reference to `libssh2_session_handshake'
collect2: ld returned 1 exit status
make[1]: Leaving directory `/home/build/qemu/trivial-patches_x86_64_debian_6_0/build' make[1]: *** [qemu-nbd] Error 1

QEMU requires libssh2-1.2.8 - the version this function was added in, so the buildslave needs updating to at least this libssh2 version. However this should have been caught at ./configure time, either block/ssh.o shouldn't be compiled because a suitable libssh2 isn't available or ./configure should throw an error. There's a check in block/Makefile.objs so I'm not sure why this didn't happen, I guess it merits further investigation?

xen_x86_64_debian_6_0:
xen_i386_debian_6_0:
http://buildbot.b1-systems.de/qemu/builders/xen_i386_debian_6_0/builds/720/steps/configure/logs/stdio

Quoted 1 line

ERROR: unknown option --disable-debug-info

This builder is trying to build a 2 year old revision (!), so either needs to use a later revision or should be deactivated.

xen40:
xen41:
xen42:
xen_unstable:

Quoted 1 line

arm-softmmu/qemu-system-arm: error while loading shared libraries: libxenstore.so.3.0: cannot open shared object file: No such file or directory

libxenstore is a QEMU dependency, is it available on this buildslave?

Charlie

[1] http://buildbot.b1-systems.de/qemu/builders

#1 lore raw

PATCH 1/1 Remove Python 2.5 syntax from scripts/qapi-visit.py

Quoted 9 lines · Charlie Shepherd

default_x86_64_rhel5:
http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel5/builds/684/steps/compile/logs/stdio

Quoted 5 lines

File "/home/buildbot/slave-public/default_x86_64_rhel5/build/scripts/qapi-visit.py", line 23
full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
^
SyntaxError: invalid syntax
make: *** [qapi-visit.h] Error 1

This syntax was introduced in Python 2.5, patch to follow to convert this to valid Python 2.4 syntax.

The syntax var = a if b else c was added in Python 2.5, but QEMU has a

minimum Python version of 2.4, which chokes on this syntax. This patch

converts the new syntax to Python 2.4 compatible syntax.

---

 scripts/qapi-visit.py |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
scripts/qapi-visit.py +0 -0

index 597cca4..5d04438 100644

--- a/scripts/qapi-visit.py

+++ b/scripts/qapi-visit.py

@@ -20,7 +20,10 @@ import errno

def generate_visit_struct_fields(name, field_prefix, fn_prefix, members):

     substructs = []

     ret = ''

- full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)

+ if not fn_prefix:

+ full_name = name

+ else:

+ full_name = "%s_%s" % (name, fn_prefix)

for argname, argentry, optional, structured in parse_args(members):

if structured:

@@ -84,7 +87,10 @@ if (!error_is_set(errp)) {

''')

push_indent()

- full_name = name if not field_prefix else "%s_%s" % (field_prefix, name)

+ if not fn_prefix:

+ full_name = name

+ else:

+ full_name = "%s_%s" % (name, fn_prefix)

     if len(field_prefix):

         ret += mcgen('''

@@ -270,7 +276,7 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **

         if (!err) {

             switch ((*obj)->kind) {

''',

- name=name, type="type" if not discriminator else discriminator)

+ name=name, type=(discriminator or "type"))

for key in members:

if not discriminator:

Signature · 1 line
1.7.9.5
#2 lore raw

Re: [Qemu-devel] [PATCH] Remove Python 2.5 syntax from scripts/qapi-visit.py

Quoted 18 lines · Charlie Shepherd
Quoted 12 lines · Charlie Shepherd

default_x86_64_rhel5:

http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel5/builds/684/steps/compile/logs/stdio

Quoted 8 lines

File
"/home/buildbot/slave-public/default_x86_64_rhel5/build/scripts/qapi-visit.py", line 23
full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
^
SyntaxError: invalid syntax
make: *** [qapi-visit.h] Error 1

Quoted 2 lines

This syntax was introduced in Python 2.5, patch to follow to convert this to valid Python 2.4 syntax.

Quoted 7 lines

The syntax var = a if b else c was added in Python 2.5, but QEMU has a

minimum Python version of 2.4, which chokes on this syntax. This patch

converts the new syntax to Python 2.4 compatible syntax.

---

Missing Signed-off-by: line.

Also it looks like the email is double-spaced. Copy-paste or email client issue?

Review

Quoted 10 lines

- full_name = name if not field_prefix else "%s_%s" % (field_prefix,
name)

(quoted diff) +4 -0
+    if not fn_prefix:
 
+        full_name = name
 
+    else:
 
+        full_name = "%s_%s" % (name, fn_prefix)

Careful, (field_prefix, name) were swapped to (name, fn_prefix).

#6 lore raw
In reply to Charlie Shepherd

Hi,

Quoted 7 lines · Charlie Shepherd

xen40:
xen41:
xen42:
xen_unstable:

Quoted 1 line
Quoted 1 line

arm-softmmu/qemu-system-arm: error while loading shared libraries: libxenstore.so.3.0: cannot open shared object file: No such file or directory

libxenstore is a QEMU dependency, is it available on this buildslave?

Yes, but not system wide.

So, we would need to provide LD_LIBRARY_PATH to the tests. And those are the paths for the different builders:

xen40:
/home/build/install/xen-4.0.x/lib/

xen41:
/home/build/install/xen-4.1.x/lib/

xen42:
/home/build/install/xen-4.2.x/lib/

xen_unstable:
/home/build/install/xen-unstable/lib/

Thanks for locking at this.

Signature · 1 line
Anthony PERARD
#7 lore raw
Quoted 17 lines · Anthony PERARD
Quoted 7 lines · Charlie Shepherd

xen40:
xen41:
xen42:
xen_unstable:

Quoted 1 line
Quoted 1 line

arm-softmmu/qemu-system-arm: error while loading shared libraries: libxenstore.so.3.0: cannot open shared object file: No such file or directory

libxenstore is a QEMU dependency, is it available on this buildslave?

Yes, but not system wide.

So, we would need to provide LD_LIBRARY_PATH to the tests. And those are the paths for the different builders:

xen40:
/home/build/install/xen-4.0.x/lib/

Quoted 8 lines

xen41:
/home/build/install/xen-4.1.x/lib/

xen42:
/home/build/install/xen-4.2.x/lib/

xen_unstable:
/home/build/install/xen-unstable/lib/

The build configuration is here:

https://github.com/b1-systems/buildbot/blob/master/qemu-master.cfg

In particular, look at create_build_factory().

You can fix this and then raise a pull request on the GitHub repository. I guess you just need to customize the if run_tests:
stanza to also include an optional LD_LIBRARY_PATH.

Buildbot Python API documentation is here:
http://docs.buildbot.net/current/index.html

Stefan

#9 lore raw
In reply to Charlie Shepherd
Quoted 2 lines · Charlie Shepherd

This is an attempt to do some triaging of the 18 current buildbot failures[1].

Thanks for doing this!

Quoted 11 lines

trivial-patches_x86_64_debian_6_0:
http://buildbot.b1-systems.de/qemu/builders/trivial-patches_x86_64_debian_6_0/builds/717/steps/compile/logs/stdio

Quoted 7 lines

block/ssh.o: In function `connect_to_ssh':
ssh.c:(.text+0xf03): undefined reference to `libssh2_session_handshake'
collect2: ld returned 1 exit status
make[1]: Leaving directory `/home/build/qemu/trivial-patches_x86_64_debian_6_0/build' make[1]: *** [qemu-nbd] Error 1

Quoted 6 lines

QEMU requires libssh2-1.2.8 - the version this function was added in, so the buildslave needs updating to at least this libssh2 version. However this should have been caught at ./configure time, either block/ssh.o shouldn't be compiled because a suitable libssh2 isn't available or ./configure should throw an error. There's a check in block/Makefile.objs so I'm not sure why this didn't happen, I guess it merits further investigation?

This builder is using my old trivial-patches repository. Michael Tokarev has taken over trivial-patches maintainership. I have raised a pull request to drop my stale repository from the buildbot:
https://github.com/b1-systems/buildbot/pull/6

Stefan

#8 lore raw
In reply to Stefan Hajnoczi
Quoted 28 lines · Stefan Hajnoczi
Quoted 16 lines · Anthony PERARD
Quoted 7 lines · Charlie Shepherd

xen40:
xen41:
xen42:
xen_unstable:

Quoted 1 line
Quoted 1 line

arm-softmmu/qemu-system-arm: error while loading shared libraries: libxenstore.so.3.0: cannot open shared object file: No such file or directory

libxenstore is a QEMU dependency, is it available on this buildslave?

Yes, but not system wide.

So, we would need to provide LD_LIBRARY_PATH to the tests. And those are the paths for the different builders:

xen40:
/home/build/install/xen-4.0.x/lib/

Quoted 8 lines

xen41:
/home/build/install/xen-4.1.x/lib/

xen42:
/home/build/install/xen-4.2.x/lib/

xen_unstable:
/home/build/install/xen-unstable/lib/

The build configuration is here:

Quoted 7 lines

https://github.com/b1-systems/buildbot/blob/master/qemu-master.cfg

In particular, look at create_build_factory().

You can fix this and then raise a pull request on the GitHub repository. I guess you just need to customize the if run_tests:
stanza to also include an optional LD_LIBRARY_PATH.

https://github.com/b1-systems/buildbot/pull/7

Charlie

#3 lore raw

Re: [Qemu-devel] [PATCH] Remove Python 2.5 syntax from scripts/qapi-visit.py

In reply to Stefan Hajnoczi
Quoted 21 lines · Stefan Hajnoczi
Quoted 19 lines · Charlie Shepherd
Quoted 10 lines · Charlie Shepherd

default_x86_64_rhel5:

http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel5/builds/684/steps/compile/logs/stdio

Quoted 7 lines

File
"/home/buildbot/slave-public/default_x86_64_rhel5/build/scripts/qapi-visit.py", line 23
full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
^
SyntaxError: invalid syntax
make: *** [qapi-visit.h] Error 1

Quoted 2 lines

This syntax was introduced in Python 2.5, patch to follow to convert this to valid Python 2.4 syntax.

The syntax var = a if b else c was added in Python 2.5, but QEMU has a

minimum Python version of 2.4, which chokes on this syntax. This patch

Quoted 7 lines
Quoted 3 lines

converts the new syntax to Python 2.4 compatible syntax.

---

Missing Signed-off-by: line.

Also it looks like the email is double-spaced. Copy-paste or email client issue?

Thunderbird strikes again. I'll send a respin with git send-email.

Quoted 11 lines

Review

Quoted 10 lines

- full_name = name if not field_prefix else "%s_%s" % (field_prefix,
name)

(quoted diff) +4 -0
+    if not fn_prefix:
 
+        full_name = name
 
+    else:
 
+        full_name = "%s_%s" % (name, fn_prefix)

Careful, (field_prefix, name) were swapped to (name, fn_prefix).

Good catch.

Charlie

#4 lore raw

PATCH v2 1/1 Remove Python 2.5 syntax from scripts/qapi-visit.py

In reply to Stefan Hajnoczi

The syntax var = a if b else c was added in Python 2.5, but QEMU has a minimum Python version of 2.4, which chokes on this syntax. This patch converts the new syntax to Python 2.4 compatible syntax.

---
 scripts/qapi-visit.py |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
scripts/qapi-visit.py +9 -3
index 597cca4..cdf40c9 100644
@@ -20,7 +20,10 @@ import errno
 def generate_visit_struct_fields(name, field_prefix, fn_prefix, members):
     substructs = []
     ret = ''
-    full_name = name if not fn_prefix else "%s_%s" % (name, fn_prefix)
+    if not fn_prefix:
+        full_name = name
+    else:
+        full_name = "%s_%s" % (name, fn_prefix)
 
     for argname, argentry, optional, structured in parse_args(members):
         if structured:
@@ -84,7 +87,10 @@ if (!error_is_set(errp)) {
 ''')
     push_indent()
 
-    full_name = name if not field_prefix else "%s_%s" % (field_prefix, name)
+    if not field_prefix:
+        full_name = name
+    else:
+        full_name = "%s_%s" % (field_prefix, name)
 
     if len(field_prefix):
         ret += mcgen('''
@@ -270,7 +276,7 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const char *name, Error **
         if (!err) {
             switch ((*obj)->kind) {
 ''',
-                 name=name, type="type" if not discriminator else discriminator)
+                 name=name, type=(discriminator or "type"))
 
     for key in members:
         if not discriminator:
Signature · 1 line
1.7.9.5
Reviewed-by on v2 1/1
#5 lore raw

Re: [Qemu-devel] [PATCH v2] Remove Python 2.5 syntax from scripts/qapi-visit.py

Quoted 6 lines · Charlie Shepherd

The syntax var = a if b else c was added in Python 2.5, but QEMU has a minimum Python version of 2.4, which chokes on this syntax. This patch converts the new syntax to Python 2.4 compatible syntax.

---

#10 lore raw
In reply to Charlie Shepherd
Quoted 8 lines

default_x86_64_rhel61:
http://buildbot.b1-systems.de/qemu/builders/default_x86_64_rhel61/builds/698/steps/test/logs/stdio

Quoted 4 lines

GTESTER check-qtest-i386
main-loop: WARNING: I/O thread spun for 1000 iterations
**
ERROR:tests/libqtest.c:69:init_socket: assertion failed (ret != -1): (-1 != -1)

This looks like a failure to initialise a socket in tests/libqtest.c, possibly due to /tmp/ not being accessible?

This happens when a failed test run has not cleared up its sockets, and the same PID is reused. Better error trapping within the tester would be useful. Alternatively the buildbot could clear temporary files out before running.

Quoted 11 lines

default_openbsd_4.9:
http://buildbot.b1-systems.de/qemu/builders/default_openbsd_4.9/builds/700/steps/test/logs/stdio

Quoted 6 lines

tests/test-aio.o(.text+0x3df): In function `test_source_timer_schedule':
: undefined reference to pipe2' tests/test-aio.o(.text+0x4baf): In function test_timer_schedule':
: undefined reference to `pipe2'
collect2: ld returned 1 exit status
gmake: *** [tests/test-aio] Error 1

Commit b53edf971 broke this, pipe2 is a Linux-specific function. Its availability can be tested for with CONFIG_PIPE2.

Guessing that's mine. I'll take a look. A simple fix might be to only run the test on Linux for the time being.

Signature · 1 line
Alex Bligh
#11 lore raw
In reply to Charlie Shepherd
Quoted 17 lines · Charlie Shepherd

Hi all,

This is an attempt to do some triaging of the 18 current buildbot failures[1].

default_openbsd_current (offline):
http://buildbot.b1-systems.de/qemu/builders/default_openbsd_current/builds/509/steps/compile/logs/stdio

Quoted 7 lines

AS optionrom/multiboot.o
Building optionrom/multiboot.img
ld: multiboot.o: relocation R_X86_64_16 can not be used when making a shared object; recompile with -fPIC
multiboot.o: could not read symbols: Bad value
gmake[1]: *** [multiboot.img] Error 1
gmake: *** [romsubdir-optionrom] Error 2

Quoted 2 lines

This has been offline for a few weeks, I wonder if this issue has been fixed in master since?

I have been meaning to try and come up with a fix for this issue for awhile now. This has come about because OpenBSD 5.3 and newer now utilizes PIE by default on most of our architectures and building the ROM images needs to have PIE disabled. We have a patch in our ports tree to deal with this but it is not appropriate for upstream as is.

Signature · 3 lines
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.