thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James E. King, III (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Deleted] (THRIFT-4163) The debian package / autoconf build environment is not setting NDEBUG on production builds, leaving assertions active
Date Sun, 29 Oct 2017 12:10:00 GMT

     [ https://issues.apache.org/jira/browse/THRIFT-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

James E. King, III updated THRIFT-4163:
---------------------------------------
    Comment: was deleted

(was: I tried doing that but it got a bit messy.  I'm thinking instead I will just add -DNDEBUG
to the flags for the debian build.  I'd like to hear from others about this however... do
you think asserts should be left on in release production builds?  Eventually we'll remove
all the asserts and use exceptions but until then...)

> 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
>
> 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.4.14#64029)

Mime
View raw message