-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Fully Compatible
-
ALL
-
Dev Tools 2019-04-22
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Adding a validator to this type leads to the following error from the IDL compiler:
E:\workspace\mongo>ninja build\ninja\mongo\db\s\transaction_coordinator_test.exe
[1/12] C:\Python27\python.exe buildscripts/idl/idlc.py --include src --base_dir build/ninja --target_arch x86_64 --header build\ninja\mongo...d\ninja\mongo\db\commands\txn_two_phase_commit_cmds_gen.cpp src\mongo\db\commands\txn_two_phase_commit_cmds.idl --write-dependencies-inline
FAILED: build/ninja/mongo/db/commands/txn_two_phase_commit_cmds_gen.h
C:\Python27\python.exe buildscripts/idl/idlc.py --include src --base_dir build/ninja --target_arch x86_64 --header build\ninja\mongo\db\commands\txn_two_phase_commit_cmds_gen.h --output build\ninja\mongo\db\commands\txn_two_phase_commit_cmds_gen.cpp src\mongo\db\commands\txn_two_phase_commit_cmds.idl --write-dependencies-inline
Traceback (most recent call last):
File "buildscripts/idl/idlc.py", line 99, in <module>
main()
File "buildscripts/idl/idlc.py", line 92, in main
success = idl.compiler.compile_idl(compiler_args)
File "E:\workspace\mongo\buildscripts\idl\idl\compiler.py", line 221, in compile_idl
header_file_name, source_file_name)
File "E:\workspace\mongo\buildscripts\idl\idl\generator.py", line 2368, in generate_code
_generate_header(spec, header_file_name)
File "E:\workspace\mongo\buildscripts\idl\idl\generator.py", line 2334, in _generate_header
str_value = generate_header_str(spec)
File "E:\workspace\mongo\buildscripts\idl\idl\generator.py", line 2325, in generate_header_str
header.generate(spec)
File "E:\workspace\mongo\buildscripts\idl\idl\generator.py", line 1009, in generate
self.gen_validators(field)
File "E:\workspace\mongo\buildscripts\idl\idl\generator.py", line 633, in gen_validators
if not cpp_types.is_primitive_type(param_type):
File "E:\workspace\mongo\buildscripts\idl\idl\cpp_types.py", line 75, in is_primitive_type
cpp_type = cpp_type.replace(' ', '')
AttributeError: 'NoneType' object has no attribute 'replace'
[2/12] Checking error codes and waiting for next compile to finish
ninja: build stopped: subcommand failed.