Bug#993750: rgtk2: FTBFS on s390x: smoke-test failure: caught segfault
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
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
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
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
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
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
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
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