Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: wandb offline causes error #9134

Open
zankner opened this issue Dec 20, 2024 · 1 comment · May be fixed by #9135
Open

[Bug]: wandb offline causes error #9134

zankner opened this issue Dec 20, 2024 · 1 comment · May be fixed by #9135
Labels
a:sdk Area: sdk related issues ty:bug type of the issue is a bug

Comments

@zankner
Copy link

zankner commented Dec 20, 2024

Describe the bug

If I set wandb offline and then run:

import wandb
wandb.init(project="my-project", name="my-name")

I get the following error:

ValidationError                           Traceback (most recent call last)
Cell In[2], line 1
----> 1 wandb.init(project="my-project", name="my-name")

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_init.py:1319, in init(job_type, dir, config, project, entity, reinit, tags, group, name, notes, config_exclude_keys, config_include_keys, anonymous, mode, allow_val_change, resume, force, tensorboard, sync_tensorboard, monitor_gym, save_code, id, fork_from, resume_from, settings)
   1315     logger.exception("error in wandb.init()", exc_info=e)
   1317 # Need to build delay into this sentry capture because our exit hooks
   1318 # mess with sentry's ability to send out errors before the program ends.
-> 1319 wandb._sentry.reraise(e)
   1320 raise AssertionError()

File /usr/lib/python3/dist-packages/wandb/analytics/sentry.py:156, in Sentry.reraise(self, exc)
    153 self.exception(exc)
    154 # this will messily add this "reraise" function to the stack trace,
    155 # but hopefully it's not too bad
--> 156 raise exc.with_traceback(sys.exc_info()[2])

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_init.py:1297, in init(job_type, dir, config, project, entity, reinit, tags, group, name, notes, config_exclude_keys, config_include_keys, anonymous, mode, allow_val_change, resume, force, tensorboard, sync_tensorboard, monitor_gym, save_code, id, fork_from, resume_from, settings)
   1295 try:
   1296     wi = _WandbInit()
-> 1297     wi.setup(
   1298         init_settings=init_settings,
   1299         config=config,
   1300         config_exclude_keys=config_exclude_keys,
   1301         config_include_keys=config_include_keys,
   1302         allow_val_change=allow_val_change,
   1303         monitor_gym=monitor_gym,
   1304     )
   1305     return wi.init()
   1307 except KeyboardInterrupt as e:

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_init.py:196, in _WandbInit.setup(self, init_settings, config, config_exclude_keys, config_include_keys, allow_val_change, monitor_gym)
    191     setup_settings_dict["x_disable_service"] = init_settings.x_disable_service
    192 setup_settings = (
    193     wandb.Settings(**setup_settings_dict) if setup_settings_dict else None
    194 )
--> 196 self._wl = wandb_setup.setup(settings=setup_settings)
    198 assert self._wl is not None
    199 _set_logger(self._wl._get_logger())

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_setup.py:383, in setup(settings)
    327 def setup(settings: Settings | None = None) -> _WandbSetup | None:
    328     """Prepares W&B for use in the current process and its children.
    329 
    330     You can usually ignore this as it is implicitly called by `wandb.init()`.
   (...)
    381         ```
    382     """
--> 383     ret = _setup(settings=settings)
    384     return ret

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_setup.py:323, in _setup(settings, _reset)
    320     teardown()
    321     return None
--> 323 wl = _WandbSetup(settings=settings)
    324 return wl

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_setup.py:301, in _WandbSetup.__init__(self, settings)
    299     _WandbSetup._instance._update(settings=settings)
    300     return
--> 301 _WandbSetup._instance = _WandbSetup__WandbSetup(settings=settings, pid=pid)

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_setup.py:110, in _WandbSetup__WandbSetup.__init__(self, pid, settings, environ)
    107 self._early_logger = _EarlyLogger()
    108 _set_logger(self._early_logger)
--> 110 self._settings = self._settings_setup(settings, self._early_logger)
    112 wandb.termsetup(self._settings, logger)
    114 self._check()

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_setup.py:139, in _WandbSetup__WandbSetup._settings_setup(self, settings, early_logger)
    137 if s.settings_workspace and early_logger:
    138     early_logger.info(f"Loading settings from {s.settings_workspace}")
--> 139 s.update_from_workspace_config_file()
    141 # load settings from the environment variables
    142 if early_logger:

File /usr/lib/python3/dist-packages/wandb/sdk/wandb_settings.py:883, in Settings.update_from_workspace_config_file(self)
    881 for key, value in self._load_config_file(self.settings_workspace).items():
    882     if value is not None:
--> 883         setattr(self, key, value)

File /usr/lib/python3/dist-packages/pydantic/main.py:923, in BaseModel.__setattr__(self, name, value)
    921     self.__dict__[name] = value
    922 elif self.model_config.get('validate_assignment', None):
--> 923     self.__pydantic_validator__.validate_assignment(self, name, value)
    924 elif self.model_config.get('extra') != 'allow' and name not in self.__pydantic_fields__:
    925     # TODO - matching error
    926     raise ValueError(f'"{self.__class__.__name__}" object has no field "{name}"')

ValidationError: 1 validation error for Settings
disabled
  Object has no attribute 'disabled' [type=no_such_attribute, input_value='true', input_type=str]
    For further information visit https://errors.pydantic.dev/2.10/v/no_such_attribute

This happens for wandb versions 0.19.1 and 0.19.0 but does not happen for version 0.18.7 and below.

@zankner zankner added a:sdk Area: sdk related issues ty:bug type of the issue is a bug labels Dec 20, 2024
@kptkin kptkin linked a pull request Dec 20, 2024 that will close this issue
1 task
@ArtsiomWB
Copy link
Contributor

Hey @zankner! Thank you for writing in.

I see the same behavior on my end. I'll report it to our eng team. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:sdk Area: sdk related issues ty:bug type of the issue is a bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants