Skip to content

Auto-launching discovery service fails after clean install #369

@bkeryan

Description

@bkeryan

Bug Report

After installing MeasurementLink on a clean system, running a Python measurement service fails.

Repro or Code Sample

  • Reimage PC
  • Install MeasurementLink and drivers
  • Do not run InstrumentStudio or MeasurementLink UI Editor
  • Install Python, Poetry, etc.
  • Run a Python measurement service

Expected Behavior

The Python measurement service starts the MeasurementLink discovery service.

Current Behavior

The Python measurement service starts the MeasurementLink discovery service (visible in Task Manager), but it also raises an unhandled exception:

PS D:\dev\measurementlink-python\examples\sample_measurement> poetry run python .\measurement.py -v
2023-09-06 13:52:04,696 INFO: Measurement service hosted on port: 52461
2023-09-06 13:52:04,723 ERROR: Error in registering with discovery service.
Traceback (most recent call last):
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 128, in register_measurement_service
    register_response = self.stub.RegisterService(request)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 85, in stub
    address = _get_discovery_service_address()
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 223, in _get_discovery_service_address
    _ensure_discovery_service_started(key_file_path)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 237, in _ensure_discovery_service_started
    _discovery_service_subprocess = _start_service(exe_file_path, key_file_path)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 284, in _start_service
    with _open_key_file(str(key_file_path)) as _:
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 335, in _open_key_file
    win32_file_handle = win32file.CreateFile(
pywintypes.error: (3, 'CreateFile', 'The system cannot find the path specified.')
Traceback (most recent call last):
  File "D:\dev\measurementlink-python\examples\sample_measurement\measurement.py", line 115, in <module>
    main()
  File "D:\dev\measurementlink-python\examples\sample_measurement\.venv\lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "D:\dev\measurementlink-python\examples\sample_measurement\.venv\lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "D:\dev\measurementlink-python\examples\sample_measurement\.venv\lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "D:\dev\measurementlink-python\examples\sample_measurement\.venv\lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "D:\dev\measurementlink-python\examples\sample_measurement\measurement.py", line 110, in main
    with sample_measurement_service.host_service():
  File "D:\dev\measurementlink-python\ni_measurementlink_service\measurement\service.py", line 396, in host_service
    self.grpc_service.start(
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\service_manager.py", line 109, in start
    self.discovery_client.register_measurement_service(port, service_info, measurement_info)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 128, in register_measurement_service
    register_response = self.stub.RegisterService(request)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 85, in stub
    address = _get_discovery_service_address()
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 223, in _get_discovery_service_address
    _ensure_discovery_service_started(key_file_path)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 237, in _ensure_discovery_service_started
    _discovery_service_subprocess = _start_service(exe_file_path, key_file_path)
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 284, in _start_service
    with _open_key_file(str(key_file_path)) as _:
  File "D:\dev\measurementlink-python\ni_measurementlink_service\_internal\discovery_client.py", line 335, in _open_key_file
    win32_file_handle = win32file.CreateFile(
pywintypes.error: (3, 'CreateFile', 'The system cannot find the path specified.')

Workaround

Run it again.

Your Environment

  • OS & Device: Windows
  • ni-measurementlink-service version: 1.2.0-dev2 from main
  • MeasurementLink version: 23.8.0d578
  • Python version: 3.9.13

AB#2514643

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions