[CDRIVER-697] Turn on basic err checking in release build Created: 04/Jun/15  Updated: 01/Apr/17  Resolved: 01/Oct/15

Status: Closed
Project: C Driver
Component/s: Build, libbson, libmongoc
Affects Version/s: None
Fix Version/s: 1.2-rc0

Type: New Feature Priority: Major - P3
Reporter: A. Jesse Jiryu Davis Assignee: A. Jesse Jiryu Davis
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by CDRIVER-854 Allow for basic input validation and ... Closed
Related
is related to CDRIVER-620 Runtime flag for TRACE Closed
is related to CDRIVER-1202 driver crashes for unfortunate query Closed
is related to CDRIVER-386 Support recovery from Out of Memory c... Closed
Case:

 Description   

asserts and bson_return_if_fail should be on in release builds, not off, to aid debugging crashes on user systems



 Comments   
Comment by Githook User [ 03/Feb/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 stale references to BSON_DISABLE_ASSERT and BSON_DISABLE_CHECKS
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/71e86565c641c72593b064a9759c2932d6eb8e0d

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 enable BSON_ASSERT in release build
Branch: 1.3.0-dev
https://github.com/mongodb/libbson/commit/ac6928fd569a7c1b4930c172d2afdc6b0c64150c

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 delete bson_return macros
Branch: 1.3.0-dev
https://github.com/mongodb/libbson/commit/04b422ab5ebd4840199a124553822e97951a9321

Comment by Githook User [ 11/Jan/16 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 don't use bson_return_if macros

Replace all uses of bson_return_if_fail, etc., with BSON_ASSERT. Remove some
paranoid asserts in preparation for turning them on in release builds.
Branch: 1.3.0-dev
https://github.com/mongodb/libbson/commit/9d1402b776e52e005914adebf5d67a302b92a921

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 enable BSON_ASSERT in release build
Branch: debian
https://github.com/mongodb/libbson/commit/ac6928fd569a7c1b4930c172d2afdc6b0c64150c

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 delete bson_return macros
Branch: debian
https://github.com/mongodb/libbson/commit/04b422ab5ebd4840199a124553822e97951a9321

Comment by Githook User [ 20/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 don't use bson_return_if macros

Replace all uses of bson_return_if_fail, etc., with BSON_ASSERT. Remove some
paranoid asserts in preparation for turning them on in release builds.
Branch: debian
https://github.com/mongodb/libbson/commit/9d1402b776e52e005914adebf5d67a302b92a921

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 enable BSON_ASSERT in release build
Branch: master
https://github.com/mongodb/libbson/commit/ac6928fd569a7c1b4930c172d2afdc6b0c64150c

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 delete bson_return macros
Branch: master
https://github.com/mongodb/libbson/commit/04b422ab5ebd4840199a124553822e97951a9321

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 don't use bson_return_if macros

Replace all uses of bson_return_if_fail, etc., with BSON_ASSERT. Remove some
paranoid asserts in preparation for turning them on in release builds.
Branch: master
https://github.com/mongodb/libbson/commit/9d1402b776e52e005914adebf5d67a302b92a921

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 07/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: Merge branch '1.2.0-dev'

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 no bson_return calls in tests
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/5c9d4b23809810c069fa82ff13318aa2c7697d25

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-697: Fix windows build (strcasecmp)
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/65a55220437d817d21f5a1d603029dcf0ed0c335

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 enable BSON_ASSERT in release build
Branch: 1.2.0-dev
https://github.com/mongodb/libbson/commit/ac6928fd569a7c1b4930c172d2afdc6b0c64150c

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 delete bson_return macros
Branch: 1.2.0-dev
https://github.com/mongodb/libbson/commit/04b422ab5ebd4840199a124553822e97951a9321

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 don't use bson_return_if macros

Replace all uses of bson_return_if_fail, etc., with BSON_ASSERT. Remove some
paranoid asserts in preparation for turning them on in release builds.
Branch: 1.2.0-dev
https://github.com/mongodb/libbson/commit/9d1402b776e52e005914adebf5d67a302b92a921

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 no bson_return_val_if_fail in RPC code
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/07c17ce8b5192cb2410480dfc86d794809ff5479

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 use assert, not BSON_ASSERT, in rpc code
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/dbb54230410d27b307cb5f2b9f4cf0f381fe0c55

Comment by Githook User [ 01/Oct/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-697 don't use bson_return functions.

BSON_ASSERT will become a release-build runtime check, so use it
everywhere.
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/1941a0a6fd7271ac26d7a3a152df30f810a662a8

Comment by A. Jesse Jiryu Davis [ 30/Sep/15 ]

First code review:

  • Replace uses of "bson_return" macros in libmongoc with BSON_ASSERT
  • Replace uses of ALWAYS_ASSERT in libmongoc with BSON_ASSERT
  • Replace BSON_ASSERT with bare assert in some high-traffic RPC code

Second:

  • Replace uses of "bson_return" macros in libbson with BSON_ASSERT
  • Replace BSON_ASSERT with bare assert in some high-traffic libbson code

Third

  • Delete bson_return macros
  • Turn BSON_ASSERT on in production builds in libbson
  • Use BSON_UNLIKELY to encourage branch prediction in BSON_ASSERT

Check that performance isn't measurably harmed.

Generated at Wed Feb 07 21:10:20 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.