[ https://issues.apache.org/jira/browse/THRIFT-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King, III reassigned THRIFT-4163: ------------------------------------------ Assignee: James E. King, III > The debian package / autoconf build environment is not setting NDEBUG on > production builds, leaving assertions active > --------------------------------------------------------------------------------------------------------------------- > > Key: THRIFT-4163 > URL: https://issues.apache.org/jira/browse/THRIFT-4163 > Project: Thrift > Issue Type: Bug > Components: Build Process > Affects Versions: 0.10.0 > Reporter: James E. King, III > Assignee: James E. King, III > Priority: Critical > > In a project that uses thrift I was looking at a core and found an assertion > inside thrift triggered it. This was rather strange being in a release build > of thrift. > To understand if assertions are active in release builds, I modified > PlatformSocket.h and added this close to the top: > {noformat} > #ifdef NDEBUG > #error "NDEBUG IS SET: ASSERTIONS ARE IGNORED" > #else > #error "NDEBUG IS NOT SET: ASSERTIONS ARE ACTIVE" > #endif > {noformat} > Then I built the ubuntu dockerfile and started a debian package distribution > build: > {noformat} > # docker build -t thrift build/docker/ubuntu > # docker run -v $(pwd):/thrift/src -it thrift /bin/bash > # dpkg-buildpackage -d -tc 2>&1 | grep NDEBUG > ./src/thrift/transport/PlatformSocket.h:25:2: error: #error "NDEBUG IS NOT > SET: ASSERTIONS ARE ACTIVE" > #error "NDEBUG IS NOT SET: ASSERTIONS ARE ACTIVE" > {noformat} > Assertions should not be active in release builds. > Assertions really shouldn't be used; exceptions are much better for C++. > That's covered in THRIFT-3978 however. To fix this issue, the autoconf > system needs to set NDEBUG for release builds. > I checked the cmake build environment and it does not suffer from this issue. -- This message was sent by Atlassian JIRA (v6.3.15#6346)