bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#73575: Mate fails to build on i686-linux


From: Dariqq
Subject: bug#73575: Mate fails to build on i686-linux
Date: Tue, 1 Oct 2024 17:08:09 +0000

Had a look at the test failures:


- python-werkzeug:
tests/test_serving.py: ConnectionRefusedError: [Errno 111] Connection refused

Not sure what is causing this. Some other linux distributions disable this test (this package has a lot of dependants though)



- skia
../../src/base/SkContainers.cpp:66: fatal error: "assert(capacity >= 0)"


The function that is causing the error looks like this

#+begin_src cpp
size_t SkContainerAllocator::roundUpCapacity(int64_t capacity) const {
    SkASSERT(capacity >= 0);

    // If round will not go above fMaxCapacity return rounded capacity.
    if (capacity < fMaxCapacity - kCapacityMultiple) {
        return SkAlignTo(capacity, kCapacityMultiple);
    }

    return SkToSizeT(fMaxCapacity);
}
#+end_src


In the same file there is another function which calls roundUpCapacity which looks like it can overflow because things get castet to int64_t after the multiplication which will fail to catch the overflow

#+begin_src cpp
size_t SkContainerAllocator::growthFactorCapacity(int capacity, double growthFactor) const {
    SkASSERT(capacity >= 0);
    SkASSERT(growthFactor >= 1.0);
// Multiply by the growthFactor. Remember this must be done in 64-bit ints and not
    // size_t because size_t changes.
const int64_t capacityGrowth = static_cast<int64_t>(capacity * growthFactor);

// Notice that for small values of capacity, rounding up will provide most of the growth.
    return this->roundUpCapacity(capacityGrowth);
}
#+end_src




- node:
In tests/parallel/test-fs-utimes-y2K38.js
this is failing:

#+begin_src js
const path = `${tmpdir.path}/test-utimes-precision`;
fs.writeFileSync(path, '');

const Y2K38_mtime = 2 ** 31;
fs.utimesSync(path, Y2K38_mtime, Y2K38_mtime);
#+end_src

with
#+begin_example
not ok 1133 parallel/test-fs-utimes-y2K38
  ---
  duration_ms: 157.49700
  severity: fail
  exitcode: 1
  stack: |-
    node:internal/fs/utils:351
        throw err;
        ^

Error: EINVAL: invalid argument, utime '/tmp/guix-build-node-18.19.0.drv-0/node-v18.19.0/test/.tmp.1155/test-utimes-precision'
        at Object.utimesSync (node:fs:2134:3)
at Object.<anonymous> (/tmp/guix-build-node-18.19.0.drv-0/node-v18.19.0/test/parallel/test-fs-utimes-y2K38.js:46:4)
        at Module._compile (node:internal/modules/cjs/loader:1356:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
        at Module.load (node:internal/modules/cjs/loader:1197:32)
        at Module._load (node:internal/modules/cjs/loader:1013:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
        at node:internal/main/run_main_module:28:49 {
      errno: -22,
      syscall: 'utime',
      code: 'EINVAL',
path: '/tmp/guix-build-node-18.19.0.drv-0/node-v18.19.0/test/.tmp.1155/test-utimes-precision'
    }

    Node.js v18.19.0
#+end_example


This seems to be another overflow/integer too big error as 2**31 -1 works.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]