Summary: | devel/ice: Update to 3.6.4 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Andreas Sommer <andreas.sommer87> | ||||||||||||
Component: | Individual Port(s) | Assignee: | Michael Gmelin <grembo> | ||||||||||||
Status: | Closed FIXED | ||||||||||||||
Severity: | Affects Some People | CC: | freebsd, grembo | ||||||||||||
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(freebsd) |
||||||||||||
Version: | Latest | ||||||||||||||
Hardware: | Any | ||||||||||||||
OS: | Any | ||||||||||||||
URL: | https://github.com/zeroc-ice/ice/blob/3.6/CHANGELOG-3.6.md | ||||||||||||||
See Also: | https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221141 | ||||||||||||||
Attachments: |
|
Description
Andreas Sommer
2017-09-13 15:31:10 UTC
Created attachment 186333 [details]
Poudriere testport log
Please wait before checking and committing. I'm currently experiencing a segfault in a Python-based unit test that happens with 3.6.4 but not with {py27-}Ice-3.6.3_1. Created attachment 186989 [details] Port skeleton patch for 3.6.4 Resolved the alleged segfault. The crash itself was a red herring and came from me only updating Ice/py27-Ice in my test system, but not python27. Didn't check exactly, but I guess the C API of libpython had changed between the version I had installed and the one in my ports tree (against which devel/py-ice was built). Instead, my reproduction environment (https://github.com/AndiDog/ice-3.6.4-python-bug) actually led to this problem after fishing out the herring: > Traceback (most recent call last): > File "./client.py", line 15, in <module> > print(demo.method()) > File "Demo.ice", line 227, in method > > SystemError: Objects/tupleobject.c:142: bad argument to internal function > *** Error code 1 This came from the patch-python-modules-IcePy-Operation.cpp which replaced all occurrences of PyTuple_SET_ITEM by PyTuple_SetItem. However this is wrong at least for this (patched) hunk > void > IcePy::ParamInfo::unmarshaled(PyObject* val, PyObject* target, void* closure) > { > assert(PyTuple_Check(target)); > Py_ssize_t i = reinterpret_cast<Py_ssize_t>(closure); > PyTuple_SetItem(target, i, val); > Py_INCREF(val); // PyTuple_SetItem steals a reference. > } Here, the `val` had reference count == 2, but PyTuple_SetItem only allows 1. So Ice is using PyTuple_SET_ITEM (which doesn't check refcount) on purpose. Therefore, this patch hunk had to be removed. All other patched occurrences seemed fine, but I still removed the whole patch file because with those other occurences, the tuple is obviously newly created and therefore PyTuple_SET_ITEM is good enough. No need to differ from upstream here. --- ice-3.6.4.diff updated - very same but with files/patch-python-modules-IcePy-Operation.cpp removed. Patch needs to be applied with `patch -E` to remove empty files. I've tested 3.6.4 for quite a while now and feeling pretty confident to upgrade. Created attachment 187014 [details]
Poudriere testport log (11.1-RELEASE amd64)
As requested: proof this release still compiles with Clang 4.
Created attachment 187015 [details]
Poudriere testport log (11.1-RELEASE amd64) for py27-ice
Requires more patches to the test target (currently testing those) because of libressl and py-passlib changes. I'll also need to test devel/php5-ice. More changes required (php5-ice doesn't build), fix is trivial though. Will update the port as soon as automatic tests/internal exp-runs finish. A commit references this bug: Author: grembo Date: Mon Jan 22 23:05:52 UTC 2018 New revision: 459707 URL: https://svnweb.freebsd.org/changeset/ports/459707 Log: Update devel/ice, devel/py-ice, devel/php5-ice to version 3.6.4 PR: 222291 Submitted by: Andreas Sommer <andreas.sommer87@googlemail.com> Changes: head/devel/ice/Makefile head/devel/ice/distinfo head/devel/ice/files/Make.rules.FreeBSD head/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp head/devel/ice/files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp head/devel/ice/files/patch-cpp-src-IceSSL-Util.cpp head/devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp head/devel/ice/files/patch-cpp-test-IceSSL-configuration-AllTests.cpp head/devel/ice/files/patch-php-config-Make.rules.php head/devel/ice/files/patch-python-modules-IcePy-Operation.cpp head/devel/ice/files/patch-scripts-TestUtil.py head/devel/ice/pkg-plist |