Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-14 Thread Dirk Eddelbuettel


Hi Philipp, Hi Simon,

If we have no resolution on this I will have no other way than to re-upload
r-cran-rgtk2 with a build exclusion for s390 as I now have an autoremoval
notice for it (and another package I look after than depends on it).

Or do we have other/better options?

Dirk

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-12 Thread Simon McVittie
On Sun, 12 Sep 2021 at 12:14:47 +0200, Philipp Kern wrote:
> On 06.09.21 10:39, Simon McVittie wrote:
> > This happened on s390x buildds consistently across two builds of the
> > +b2 binNMU, but I can't reproduce it on the s390x porterbox zelenka
...
> zelenka is a z15 8561. Same for zani and zandonai. Kernel-wise we have a
> mix:
> 
> > Linux zandonai 4.19.0-17-s390x #1 SMP Debian 4.19.194-3 (2021-07-18) s390x 
> > GNU/Linux
> > Linux zani 5.10.0-8-s390x #1 SMP Debian 5.10.46-4 (2021-08-03) s390x 
> > GNU/Linux
> > Linux zelenka 4.19.0-17-s390x #1 SMP Debian 4.19.194-3 (2021-07-18) s390x 
> > GNU/Linux
> 
> (zani is the only machine of the three on Debian 11)

That's weird: the failed buildd builds happen to have all been on zandonai,
but according to your information, zandonai and zelenka should be equivalent
(same hardware, same kernel). So there isn't an obvious reason why this
package would segfault on zandonai, but work fine on zelenka.

smcv



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-12 Thread Philipp Kern




On 06.09.21 10:39, Simon McVittie wrote:

This happened on s390x buildds consistently across two builds of the
+b2 binNMU, but I can't reproduce it on the s390x porterbox zelenka
in either a sid or bullseye chroot, which is odd. I've given back the
official buildd build to see whether it was something transient.

s390 porters: are there any important differences between the s390x
porterbox and the s390x buildds, like a different CPU or something?


zelenka is a z15 8561. Same for zani and zandonai. Kernel-wise we have a 
mix:



Linux zandonai 4.19.0-17-s390x #1 SMP Debian 4.19.194-3 (2021-07-18) s390x 
GNU/Linux
Linux zani 5.10.0-8-s390x #1 SMP Debian 5.10.46-4 (2021-08-03) s390x GNU/Linux
Linux zelenka 4.19.0-17-s390x #1 SMP Debian 4.19.194-3 (2021-07-18) s390x 
GNU/Linux


(zani is the only machine of the three on Debian 11)

Kind regards
Philipp Kern



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-06 Thread Dirk Eddelbuettel


On 6 September 2021 at 09:39, Simon McVittie wrote:
| On Sun, 05 Sep 2021 at 20:04:55 -0500, Dirk Eddelbuettel wrote:
| > Please explain what a smoke-test failure is.
| 
| Sorry, I thought this was a common term.
| 
| A smoke-test for hardware: plug in the device and see whether smoke
| comes out. If yes, reject it. If not, it *might* work as intended (but
| further testing would be needed to know that).
| 
| By analogy, a smoke-test for software: try to do something superficial
| with it, like loading it but not running any real tests. If that fails,
| reject it (as the R build system does here). If not, it might work
| (but further testing would be needed to know that).

Yes, that is exactly what is done (and for the very reason), we just had not
used _that term_ over here for it :-/ though I had seen it used. It is a fair
discriminator esp with shared library dependencies :)
 
| > A segfault here usually means /some/ API along
| > the way changed :-/ and is rare as a one-arch-only occurrence.
| 
| This happened on s390x buildds consistently across two builds of the
| +b2 binNMU, but I can't reproduce it on the s390x porterbox zelenka
| in either a sid or bullseye chroot, which is odd. I've given back the
| official buildd build to see whether it was something transient.

Ok.

| s390 porters: are there any important differences between the s390x
| porterbox and the s390x buildds, like a different CPU or something?
| 
| On the porterbox, I get the same output as on the non-s390x buildds:
| rgtk can't actually initialize because there's no X11 display, but
| doesn't crash either.

This is a fairly stable (upstream) package, it used to be considered big-ish
too as it has all the gtk2 bindings (generated as I recall).

Let me know if I can help. I do not think the package does anything special
on the platform.

Dirk

| > make[1]: Leaving directory '/home/smcv/rgtk2-2.20.36/src'
| > installing to 
/home/smcv/rgtk2-2.20.36/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new/RGtk2/libs
| > ** R
| > ** demo
| > ** inst
| > ** byte-compile and prepare package for lazy loading
| > ** help
| > *** installing help indices
| > ** building package indices
| > ** testing if installed package can be loaded from temporary location
| > R session is headless; GTK+ not initialized.
| > ** checking absolute paths in shared objects and dynamic libraries
| > ** testing if installed package can be loaded from final location
| > R session is headless; GTK+ not initialized.
| > ** testing if installed package keeps a record of temporary installation 
path
| > * DONE (RGtk2)
| 
| smcv

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-06 Thread Simon McVittie
On Sun, 05 Sep 2021 at 20:04:55 -0500, Dirk Eddelbuettel wrote:
> Please explain what a smoke-test failure is.

Sorry, I thought this was a common term.

A smoke-test for hardware: plug in the device and see whether smoke
comes out. If yes, reject it. If not, it *might* work as intended (but
further testing would be needed to know that).

By analogy, a smoke-test for software: try to do something superficial
with it, like loading it but not running any real tests. If that fails,
reject it (as the R build system does here). If not, it might work
(but further testing would be needed to know that).

> A segfault here usually means /some/ API along
> the way changed :-/ and is rare as a one-arch-only occurrence.

This happened on s390x buildds consistently across two builds of the
+b2 binNMU, but I can't reproduce it on the s390x porterbox zelenka
in either a sid or bullseye chroot, which is odd. I've given back the
official buildd build to see whether it was something transient.

s390 porters: are there any important differences between the s390x
porterbox and the s390x buildds, like a different CPU or something?

On the porterbox, I get the same output as on the non-s390x buildds:
rgtk can't actually initialize because there's no X11 display, but
doesn't crash either.

> make[1]: Leaving directory '/home/smcv/rgtk2-2.20.36/src'
> installing to 
> /home/smcv/rgtk2-2.20.36/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new/RGtk2/libs
> ** R
> ** demo
> ** inst
> ** byte-compile and prepare package for lazy loading
> ** help
> *** installing help indices
> ** building package indices
> ** testing if installed package can be loaded from temporary location
> R session is headless; GTK+ not initialized.
> ** checking absolute paths in shared objects and dynamic libraries
> ** testing if installed package can be loaded from final location
> R session is headless; GTK+ not initialized.
> ** testing if installed package keeps a record of temporary installation path
> * DONE (RGtk2)

smcv



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-05 Thread Dirk Eddelbuettel


Also: No other R packages here.  Maybe something off with gtk2?

  Build-Depends: debhelper (>= 10), dh-r (>= 20180615), \
 r-base-dev (>= 3.6.1), libgtk2.0-dev (>= 2.10.12), \
 libglade2-dev, libpango1.0-dev, libcairo2-dev 

Dirk

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-05 Thread Dirk Eddelbuettel


On 6 September 2021 at 00:46, Simon McVittie wrote:
| Source: rgtk2
| Version: 2.20.36-2
| Severity: serious
| Tags: ftbfs bookworm sid
| Justification: fails to build from source (but built successfully in the past)
| X-Debbugs-Cc: debian-s...@lists.debian.org
| User: debian-s...@lists.debian.org
| Usertags: s390x
| 
| rgtk2 failed to build on s390x when binNMU'd recently, with what appears
| to be a smoke-test failure during installation:

Hm. Please explain what a smoke-test failure is.

(What we see below is the standard R behaviour of loading a package as the
finaly step of building it. A segfault here usually means /some/ API along
the way changed :-/ and is rare as a one-arch-only occurrence.

Dirk

| > make[1]: Leaving directory '/<>/src'
| > installing to 
/<>/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new/RGtk2/libs
| > ** R
| > ** demo
| > ** inst
| > ** byte-compile and prepare package for lazy loading
| > ** help
| > *** installing help indices
| > ** building package indices
| > ** testing if installed package can be loaded from temporary location
| > 
| >  *** caught segfault ***
| > address (nil), cause 'memory not mapped'
| > 
| > Traceback:
| >  1: gtkInit(args)
| >  2: fun(libname, pkgname)
| >  3: doTryCatch(return(expr), name, parentenv, handler)
| >  4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| >  5: tryCatchList(expr, classes, parentenv, handlers)
| >  6: tryCatch(fun(libname, pkgname), error = identity)
| >  7: runHook(".onLoad", env, package.lib, package)
| >  8: loadNamespace(package, lib.loc)
| >  9: doTryCatch(return(expr), name, parentenv, handler)
| > 10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| > 11: tryCatchList(expr, classes, parentenv, handlers)
| > 12: tryCatch({attr(package, "LibPath") <- which.lib.locns <- 
loadNamespace(package, lib.loc)env <- attachNamespace(ns, pos = pos, deps, 
exclude, include.only)}, error = function(e) {P <- if (!is.null(cc <- 
conditionCall(e))) paste(" in", deparse(cc)[1L])else ""msg <- 
gettextf("package or namespace load failed for %s%s:\n %s", 
sQuote(package), P, conditionMessage(e))if (logical.return && !quietly) 
message(paste("Error:", msg), domain = NA)else stop(msg, call. = FALSE, 
domain = NA)})
| > 13: library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return 
= TRUE)
| > 14: withCallingHandlers(expr, packageStartupMessage = function(c) 
tryInvokeRestart("muffleMessage"))
| > 15: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib, 
character.only = TRUE, logical.return = TRUE))
| > 16: doTryCatch(return(expr), name, parentenv, handler)
| > 17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| > 18: tryCatchList(expr, classes, parentenv, handlers)
| > 19: tryCatch(expr, error = function(e) {call <- conditionCall(e)if 
(!is.null(call)) {if (identical(call[[1L]], quote(doTryCatch))) 
call <- sys.call(-4L)dcall <- deparse(call)[1L]prefix <- 
paste("Error in", dcall, ": ")LONG <- 75Lsm <- 
strsplit(conditionMessage(e), "\n")[[1L]]w <- 14L + nchar(dcall, type = 
"w") + nchar(sm[1L], type = "w")if (is.na(w)) w <- 14L + 
nchar(dcall, type = "b") + nchar(sm[1L], type = "b")if 
(w > LONG) prefix <- paste0(prefix, "\n  ")}else prefix <- 
"Error : "msg <- paste0(prefix, conditionMessage(e), "\n")
.Internal(seterrmessage(msg[1L]))if (!silent && 
isTRUE(getOption("show.error.messages"))) {cat(msg, file = outFile) 
   .Internal(printDeferredWarnings())}invisible(structure(msg, class = 
"try-error", condition = e))})
| > 20: try(suppressPackageStartupMessages(library(pkg_name, lib.loc = lib, 
character.only = TRUE, logical.return = TRUE)))
| > 21: tools:::.test_load_package("RGtk2", 
"/<>/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new")
| > An irrecoverable exception occurred. R is aborting now ...
| > Segmentation fault
| > ERROR: loading failed
| > * removing 
‘/<>/debian/r-cran-rgtk2/usr/lib/R/site-library/RGtk2’
| > dh_auto_install: error: R CMD INSTALL -l 
/<>/debian/r-cran-rgtk2/usr/lib/R/site-library --clean . 
"--built-timestamp='Thu, 02 Sep 2021 09:20:27 +'" returned exit code 1

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault

2021-09-05 Thread Simon McVittie
Source: rgtk2
Version: 2.20.36-2
Severity: serious
Tags: ftbfs bookworm sid
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: debian-s...@lists.debian.org
User: debian-s...@lists.debian.org
Usertags: s390x

rgtk2 failed to build on s390x when binNMU'd recently, with what appears
to be a smoke-test failure during installation:

> make[1]: Leaving directory '/<>/src'
> installing to 
> /<>/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new/RGtk2/libs
> ** R
> ** demo
> ** inst
> ** byte-compile and prepare package for lazy loading
> ** help
> *** installing help indices
> ** building package indices
> ** testing if installed package can be loaded from temporary location
> 
>  *** caught segfault ***
> address (nil), cause 'memory not mapped'
> 
> Traceback:
>  1: gtkInit(args)
>  2: fun(libname, pkgname)
>  3: doTryCatch(return(expr), name, parentenv, handler)
>  4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
>  5: tryCatchList(expr, classes, parentenv, handlers)
>  6: tryCatch(fun(libname, pkgname), error = identity)
>  7: runHook(".onLoad", env, package.lib, package)
>  8: loadNamespace(package, lib.loc)
>  9: doTryCatch(return(expr), name, parentenv, handler)
> 10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 11: tryCatchList(expr, classes, parentenv, handlers)
> 12: tryCatch({attr(package, "LibPath") <- which.lib.locns <- 
> loadNamespace(package, lib.loc)env <- attachNamespace(ns, pos = pos, 
> deps, exclude, include.only)}, error = function(e) {P <- if (!is.null(cc 
> <- conditionCall(e))) paste(" in", deparse(cc)[1L])else ""msg 
> <- gettextf("package or namespace load failed for %s%s:\n %s", 
> sQuote(package), P, conditionMessage(e))if (logical.return && !quietly)   
>   message(paste("Error:", msg), domain = NA)else stop(msg, call. = 
> FALSE, domain = NA)})
> 13: library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return = 
> TRUE)
> 14: withCallingHandlers(expr, packageStartupMessage = function(c) 
> tryInvokeRestart("muffleMessage"))
> 15: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib, 
> character.only = TRUE, logical.return = TRUE))
> 16: doTryCatch(return(expr), name, parentenv, handler)
> 17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 18: tryCatchList(expr, classes, parentenv, handlers)
> 19: tryCatch(expr, error = function(e) {call <- conditionCall(e)if 
> (!is.null(call)) {if (identical(call[[1L]], quote(doTryCatch)))   
>   call <- sys.call(-4L)dcall <- deparse(call)[1L]prefix 
> <- paste("Error in", dcall, ": ")LONG <- 75Lsm <- 
> strsplit(conditionMessage(e), "\n")[[1L]]w <- 14L + nchar(dcall, type 
> = "w") + nchar(sm[1L], type = "w")if (is.na(w)) w <- 14L 
> + nchar(dcall, type = "b") + nchar(sm[1L], type = "b")
> if (w > LONG) prefix <- paste0(prefix, "\n  ")}else 
> prefix <- "Error : "msg <- paste0(prefix, conditionMessage(e), "\n")
> .Internal(seterrmessage(msg[1L]))if (!silent && 
> isTRUE(getOption("show.error.messages"))) {cat(msg, file = outFile)   
>  .Internal(printDeferredWarnings())}invisible(structure(msg, 
> class = "try-error", condition = e))})
> 20: try(suppressPackageStartupMessages(library(pkg_name, lib.loc = lib, 
> character.only = TRUE, logical.return = TRUE)))
> 21: tools:::.test_load_package("RGtk2", 
> "/<>/debian/r-cran-rgtk2/usr/lib/R/site-library/00LOCK-rgtk2-2.20.36/00new")
> An irrecoverable exception occurred. R is aborting now ...
> Segmentation fault
> ERROR: loading failed
> * removing ‘/<>/debian/r-cran-rgtk2/usr/lib/R/site-library/RGtk2’
> dh_auto_install: error: R CMD INSTALL -l 
> /<>/debian/r-cran-rgtk2/usr/lib/R/site-library --clean . 
> "--built-timestamp='Thu, 02 Sep 2021 09:20:27 +'" returned exit code 1