[CDRIVER-4795] Restore MONGOC_MD_FLAG_ENABLE_ICU Created: 13/Dec/23  Updated: 02/Jan/24  Resolved: 02/Jan/24

Status: Closed
Project: C Driver
Component/s: None
Affects Version/s: 1.25.0
Fix Version/s: 1.25.4

Type: Bug Priority: Major - P3
Reporter: Kevin Albertson Assignee: Kevin Albertson
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screen Shot 2023-12-13 at 1.08.39 PM.png    
Issue Links:
Problem/Incident
is caused by CDRIVER-4680 Remove ENABLE_ICU option and related ... Closed

 Description   

Summary

Restore the enum value MONGOC_MD_FLAG_ENABLE_ICU removed in CDRIVER-4680 to restore the subsequent values.

Background & Motivation

CDRIVER-4680 removed the MONGOC_MD_FLAG_ENABLE_ICU from the handshake config.

The handshake config is reported in the client metadata sent to the server. Here are examples from the mongod logs (see cfg=0x0300deaa65) for C driver 1.24.3 and 1.25.0:

{"t":{"$date":"2023-12-13T13:00:39.283-05:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn13","msg":"client metadata","attr":{"remote":"127.0.0.1:49998","client":"conn13","doc":{"driver":{"name":"mongoc","version":"1.24.3"},"os":{"type":"Darwin","name":"macOS","version":"21.6.0","architecture":"arm64"},"platform":"cfg=0x0300deaa65 posix=200112 stdc=199901 CC=clang 14.0.0 (clang-1400.0.29.202) CFLAGS=\"\" LDFLAGS=\"\""}}}
{"t":{"$date":"2023-12-13T13:00:39.374-05:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn14","msg":"client metadata","attr":{"remote":"127.0.0.1:50000","client":"conn14","doc":{"driver":{"name":"mongoc","version":"1.25.0"},"os":{"type":"Darwin","name":"macOS","version":"21.6.0","architecture":"arm64"},"platform":"cfg=0x0383d6aa65 posix=200112 stdc=199901 CC=clang 14.0.0 (clang-1400.0.29.202) CFLAGS=\"\" LDFLAGS=\"\""}}}

The bits can be interpreted with parse_handshake_cfg.py.

MONGOC_MD_FLAG_ENABLE_ICU was likely unintentionally removed.
The removal may add difficultly parsing and comparing config values between driver versions. For example, HELP-52803 reports configs with equal values between driver versions 1.24.3 and 1.25.0. Yet, the interpreted values are different:

To interpret the flags for 1.24.3, the version of parse_handshake_cfg.py from the r1.24 branch may be used. To parse the flags for 1.25.0, the version of parse_handshake_cfg.py from the r1.25 branch may be used.

Caveat: restoring the flag would mean C driver versions 1.25.0-(version fixed) would be an exception with different flag parsing.



 Comments   
Comment by Githook User [ 02/Jan/24 ]

Author:

{'name': 'Kevin Albertson', 'email': 'kevin.albertson@mongodb.com', 'username': 'kevinAlbs'}

Message: CDRIVER-4795 restore `MONGOC_MD_FLAG_ENABLE_ICU` (#1494)

  • support Python 3 in `parse_handshake_cfg.py`
  • add numeric assignments to enum values
  • format `mongoc-handshake-private.h`
  • fix reference to test function
  • restore `MONGOC_MD_FLAG_ENABLE_ICU`
Comment by Githook User [ 02/Jan/24 ]

Author:

{'name': 'Kevin Albertson', 'email': 'kevin.albertson@mongodb.com', 'username': 'kevinAlbs'}

Message: CDRIVER-4795 restore `MONGOC_MD_FLAG_ENABLE_ICU` (#1494)

  • support Python 3 in `parse_handshake_cfg.py`
  • add numeric assignments to enum values
  • format `mongoc-handshake-private.h`
  • fix reference to test function
  • restore `MONGOC_MD_FLAG_ENABLE_ICU`
Generated at Wed Feb 07 21:21:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.