Title: Bug When Creating Diff With Non-Serializable Object · Issue #334 · networktocode/diffsync · GitHub
Open Graph Title: Bug When Creating Diff With Non-Serializable Object · Issue #334 · networktocode/diffsync
X Title: Bug When Creating Diff With Non-Serializable Object · Issue #334 · networktocode/diffsync
Description: Environment Python version: 3.10 DiffSync version: 2.2.0 Expected Behavior I expect the Diff to be created without issue. Observed Behavior I observed a TypeError exception being thrown: Traceback (most recent call last): File "/usr/loca...
Open Graph Description: Environment Python version: 3.10 DiffSync version: 2.2.0 Expected Behavior I expect the Diff to be created without issue. Observed Behavior I observed a TypeError exception being thrown: Traceback ...
X Description: Environment Python version: 3.10 DiffSync version: 2.2.0 Expected Behavior I expect the Diff to be created without issue. Observed Behavior I observed a TypeError exception being thrown: Traceback ...
Opengraph URL: https://github.com/networktocode/diffsync/issues/334
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Bug When Creating Diff With Non-Serializable Object","articleBody":"### Environment\n* Python version: 3.10\n* DiffSync version: 2.2.0\n\n\u003c!-- What did you expect to happen? --\u003e\n\n### Expected Behavior\nI expect the Diff to be created without issue.\n\u003c!-- What happened instead? --\u003e\n\n### Observed Behavior\nI observed a TypeError exception being thrown:\n\n```shell\nTraceback (most recent call last):\n File \"/usr/local/lib/python3.13/site-packages/celery/app/trace.py\", line 479, in trace_task\n R = retval = fun(*args, **kwargs)\n ~~~^^^^^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/site-packages/celery/app/trace.py\", line 779, in __protected_call__\n return self.run(*args, **kwargs)\n ~~~~~~~~^^^^^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/site-packages/nautobot/extras/jobs.py\", line 1312, in run_job\n result = job(*args, **kwargs)\n File \"/usr/local/lib/python3.13/site-packages/nautobot/extras/jobs.py\", line 186, in __call__\n return self.run(*args, **deserialized_kwargs)\n ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/nautobot/git/itd_nautobot_jobs/jobs/netsuite_sync/data_source.py\", line 139, in run\n super().run(*args, **kwargs)\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/site-packages/nautobot_ssot/jobs/base.py\", line 640, in run\n self.sync_data(self.memory_profiling)\n ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/site-packages/nautobot_ssot/jobs/base.py\", line 422, in sync_data\n self.load_source_adapter()\n ~~~~~~~~~~~~~~~~~~~~~~~~^^\n File \"/opt/nautobot/git/itd_nautobot_jobs/jobs/netsuite_sync/data_source.py\", line 88, in load_source_adapter\n self.source_adapter = JiraAdapter(\n ~~~~~~~~~~~^\n job=self,\n ^^^^^^^^^\n ...\u003c3 lines\u003e...\n tempo_client=self.tempo_client,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/usr/local/lib/python3.13/site-packages/diffsync/__init__.py\", line 487, in __new__\n meta_kwargs = deepcopy(kwargs)\n File \"/usr/local/lib/python3.13/copy.py\", line 137, in deepcopy\n y = copier(x, memo)\n File \"/usr/local/lib/python3.13/copy.py\", line 222, in _deepcopy_dict\n y[deepcopy(key, memo)] = deepcopy(value, memo)\n ~~~~~~~~^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/copy.py\", line 163, in deepcopy\n y = _reconstruct(x, memo, *rv)\n File \"/usr/local/lib/python3.13/copy.py\", line 260, in _reconstruct\n state = deepcopy(state, memo)\n File \"/usr/local/lib/python3.13/copy.py\", line 137, in deepcopy\n y = copier(x, memo)\n File \"/usr/local/lib/python3.13/copy.py\", line 222, in _deepcopy_dict\n y[deepcopy(key, memo)] = deepcopy(value, memo)\n ~~~~~~~~^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/copy.py\", line 163, in deepcopy\n y = _reconstruct(x, memo, *rv)\n File \"/usr/local/lib/python3.13/copy.py\", line 260, in _reconstruct\n state = deepcopy(state, memo)\n File \"/usr/local/lib/python3.13/copy.py\", line 137, in deepcopy\n y = copier(x, memo)\n File \"/usr/local/lib/python3.13/copy.py\", line 222, in _deepcopy_dict\n y[deepcopy(key, memo)] = deepcopy(value, memo)\n ~~~~~~~~^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.13/copy.py\", line 152, in deepcopy\n rv = reductor(4)\nTypeError: cannot pickle '_thread.RLock' object\n```\n\u003c!--\n Describe in detail the exact steps that someone else can take to reproduce\n this bug using the current release.\n--\u003e\n\n### Steps to Reproduce\n1. Create Diff with non-serializable object.\n2. See Exception.\n3.\n","author":{"url":"https://github.com/jdrew82","@type":"Person","name":"jdrew82"},"datePublished":"2026-02-12T20:45:30.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/334/diffsync/issues/334"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:8baa3e16-744a-fd93-9db2-b3834118df14 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | BDC8:DDB35:10A74E3:1515CB1:69916D0A |
| html-safe-nonce | bdfa39d8b8f9c68348c3809e933bbd45107644b612dc1ad899c1677650608703 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCREM4OkREQjM1OjEwQTc0RTM6MTUxNUNCMTo2OTkxNkQwQSIsInZpc2l0b3JfaWQiOiI0MzEwNTU3OTQzMTU2MjcyMzk0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 5fb90359ed67d6ddcdeb932362fdec9bf2178027d019c4591d398f6f8be3b8e8 |
| hovercard-subject-tag | issue:3933947829 |
| github-keyboard-shortcuts | repository,issues,network-graph,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/networktocode/diffsync/334/issue_layout |
| twitter:image | https://opengraph.githubassets.com/fd2b8e1f2b67643e18d3d198dff75173ab48b93b82ee122b72f7e1dc6cd46802/networktocode/diffsync/issues/334 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/fd2b8e1f2b67643e18d3d198dff75173ab48b93b82ee122b72f7e1dc6cd46802/networktocode/diffsync/issues/334 |
| og:image:alt | Environment Python version: 3.10 DiffSync version: 2.2.0 Expected Behavior I expect the Diff to be created without issue. Observed Behavior I observed a TypeError exception being thrown: Traceback ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jdrew82 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/networktocode/diffsync git https://github.com/networktocode/diffsync.git |
| octolytics-dimension-user_id | 13106404 |
| octolytics-dimension-user_login | networktocode |
| octolytics-dimension-repository_id | 292296974 |
| octolytics-dimension-repository_nwo | networktocode/diffsync |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 292296974 |
| octolytics-dimension-repository_network_root_nwo | networktocode/diffsync |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 848bc6032dcc93a9a7301dcc3f379a72ba13b96e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width