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

qsirecon error in 0.19.1: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data #664

Closed
cookpa opened this issue Dec 1, 2023 · 19 comments · Fixed by #711
Assignees
Milestone

Comments

@cookpa
Copy link
Collaborator

cookpa commented Dec 1, 2023

I'm possibly doing something wrong here, but I can't figure out why I see this error.

I'm calling qsirecon with this spec

{
  "name": "dsistudio_pipeline",
  "space": "T1w",
  "atlases": ["schaefer100", "schaefer200", "schaefer400", "brainnetome246", "aicha384", "gordon333", "aal116"],
  "nodes": [
    {
      "name": "dsistudio_gqi",
      "software": "DSI Studio",
      "action": "reconstruction",
      "input": "qsiprep",
      "output_suffix": "gqi",
      "parameters": {"method": "gqi"}
    },
    {
      "name": "scalar_export",
      "software": "DSI Studio",
      "action": "export",
      "input": "dsistudio_gqi",
      "output_suffix": "gqiscalar"
    },
    {
      "name": "tractography",
      "software": "DSI Studio",
      "action": "tractography",
      "input": "dsistudio_gqi",
      "parameters": {
        "turning_angle": 35,
        "smoothing": 0.0,
        "step_size": 1.0,
        "min_length": 30,
        "max_length": 250,
        "seed_plan": 0,
        "interpolation": 0,
        "initial_dir": 2,
        "fiber_count": 5000000
      }
    },
    {
      "name": "streamline_connectivity",
      "software": "DSI Studio",
      "action": "connectivity",
      "input": "tractography",
      "output_suffix": "gqinetwork",
      "parameters": {
        "connectivity_value": "count,ncount,mean_length,gfa",
        "connectivity_type": "pass,end"
      }
    }
  ]
}

taken from the repository file under qsiprep/data/pipelines/dsi_studio_gqi.json

The runscript is

module load singularity

image=/project/ftdc_pipeline/ftdc-picsl/pmacsPreps-0.2.3/containers/qsiprep-0.19.1.sif

export SINGULARITYENV_TMPDIR=/tmp

tmpDir=`mktemp -d -p /scratch/pac`

echo "Using tmp dir $tmpDir"

singularity run \
  --containall \
  -B ${tmpDir}:/tmp,/appl/freesurfer-7.1.1/license.txt:/freesurfer/license.txt \
  -B $PWD/output_old:/data/output,/project/ftdc_misc/harmonization/analysis/synb0/bids:/data/bids,${PWD}/dsi_studio_gqi.json:/recon/spec.json \
  $image /data/bids /data/output participant \
  --participant_label HM01 \
  --recon-spec /recon/spec.json \
  --recon_input /data/output \
  --recon-only \
  --nthreads 1 \
  --omp-nthreads 1 \
  --work-dir /tmp \
  --fs-license-file /freesurfer/license.txt

It gets through the tractography stage but fails on connectivity with

231201-12:20:28,664 nipype.workflow INFO:
	 [Node] Finished "gordon333", elapsed time 32.833375s.
231201-12:20:28,664 nipype.workflow WARNING:
	 Storing result file without outputs
231201-12:20:28,666 nipype.workflow WARNING:
	 [Node] Error on "dsistudio_atlasgraph.gordon333" (/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/gordon333)
231201-12:20:28,671 nipype.workflow ERROR:
	 Node gordon333 failed to run on host ftdc-gpu01.
231201-12:20:28,675 nipype.workflow ERROR:
	 Saving crash info to /home/cookpa/crash-20231201-122028-cookpa-gordon333-e4aa145f-b0aa-41af-9094-de25420677f1.pklz
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/linear.py", line 47, in run
    node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node gordon333.

Cmdline:
	dsi_studio --action=ana  --connectivity=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_anat_wf/get_atlases/tpl-MNI152NLin2009cAsym_res-01_atlas-Gordon333Ext_desc-LPS_dseg_to_dwi.nii.gz --connectivity_type=pass,end --connectivity_value=count,ncount,mean_length,gfa --source=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/gordon333/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz --thread_count=1 --thread_count=1 --tract=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/gordon333/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.trk.gz
Stdout:

Stderr:

Traceback:
	Traceback (most recent call last):
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 397, in run
	    runtime = self._run_interface(runtime)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 764, in _run_interface
	    runtime = run_command(
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 141, in run_command
	    _process()
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 137, in _process
	    stream.read(drain)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 42, in read
	    while self._read(drain) is not None:
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 49, in _read
	    buf = os.read(fd, 4096).decode(self.default_encoding)
	UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 4094-4095: unexpected end of data

I get this same error for all the atlases. I see this error with qsiprep 0.19.1 and 0.18.1, but not 0.16.1

@mattcieslak
Copy link
Collaborator

This is a new one, I wonder if it's having trouble reading some of the characters in the DSI Studio output? The newer dsi studios print out fancy status messages.

Can you run your singularity command with singularity shell instead of singularity run and try interactively running the failed command?

@cookpa
Copy link
Collaborator Author

cookpa commented Dec 1, 2023

Traceback:
	Traceback (most recent call last):
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 397, in run
	    runtime = self._run_interface(runtime)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/dsi_studio.py", line 490, in _run_interface
	    wf_result = workflow.run()
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/workflows.py", line 638, in run
	    runner.run(execgraph, updatehash=updatehash, config=self.config)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/linear.py", line 82, in run
	    raise error from cause
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/linear.py", line 47, in run
	    node.run(updatehash=updatehash)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
	    result = self._run_interface(execute=True)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
	    return self._run_command(execute)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
	    raise NodeExecutionError(msg)
	nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node schaefer400.

	Cmdline:
		dsi_studio --action=ana  --connectivity=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_anat_wf/get_atlases/tpl-MNI152NLin2009cAsym_res-01_atlas-Schaefer2018Ext_desc-400Parcels7NetworksLPS_dseg_to_dwi.nii.gz --connectivity_type=pass,end --connectivity_value=count,ncount,mean_length,gfa --source=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer400/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz --thread_count=1 --thread_count=1 --tract=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer400/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.trk.gz

From a shell,

dsi_studio --action=ana  --connectivity=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_anat_wf/get_atlases/tpl-MNI152NLin2009cAsym_res-01_atlas-Schaefer2018Ext_desc-400Parcels7NetworksLPS_dseg_to_dwi.nii.gz --connectivity_type=pass,end --connectivity_value=count,ncount,mean_length,gfa --source=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer400/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz --thread_count=1 --thread_count=1 --tract=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer400/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.trk.gz

works with just a warning Warning: --thread_count is not used/recognized. Did you mean --end_point ?

@cookpa
Copy link
Collaborator Author

cookpa commented Dec 1, 2023

I ran qsiprep from within the shell, and I get the error.

qsiprep /data/bids /data/output participant   --participant_label HM01   --recon-spec /recon/spec.json   --recon_input /data/output   --recon-only   --nthreads 1   --omp-nthreads 1   --work-dir /tmp   --fs-license-file /freesurfer/license.txt

But I can run dsi_studio directly

@mattcieslak
Copy link
Collaborator

ok that's helpful, it's not an issue with dsi studio's print-outs. If the dsi_studio command wrote out any files?

@cookpa
Copy link
Collaborator Author

cookpa commented Dec 1, 2023

Yes, it is writing a bunch of .mat files

@cookpa
Copy link
Collaborator Author

cookpa commented Dec 6, 2023

Adding a crash report for context

To summarize:

  • Using qsiprep 0.19.1
  • Running qsiprep on the raw data with '--recon-spec dsi_studio_gqi' works, the prep and the recon steps both run successfully
  • Running qsirecon post-processing with '--recon-only' and the recon spec ' --recon-spec dsi_studio_gqi.json' fails on "Node calc_connectivity"
  • I can shell into the container and paste the dsi_studio command from the error message, and it runs successfully
  • Running the same qsiprep post-processing command works with qsiprep 0.16.1, but fails with 0.18.1
Node: qsirecon_wf.sub-HM01_dsistudio_pipeline.sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf.streamline_connectivity.calc_connectivity
Working directory: /tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity

Node inputs:

args = <undefined>
atlas_config = <undefined>
atlas_configs = <undefined>
atlas_name = <undefined>
connectivity = <undefined>
connectivity_type = pass,end
connectivity_value = count,ncount,mean_length,gfa
environ = {}
fa_threshold = <undefined>
fiber_count = <undefined>
initial_dir = <undefined>
input_fib = <undefined>
interpo_angle = <undefined>
interpolation = <undefined>
max_length = <undefined>
min_length = <undefined>
num_threads = 1
random_seed = <undefined>
seed_count = <undefined>
seed_file = <undefined>
seed_plan = <undefined>
smoothing = <undefined>
step_size = <undefined>
thread_count = 1
to_export = <undefined>
trk_file = <undefined>
turning_angle = <undefined>

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node calc_connectivity.

Traceback:
	Traceback (most recent call last):
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 397, in run
	    runtime = self._run_interface(runtime)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/dsi_studio.py", line 490, in _run_interface
	    wf_result = workflow.run()
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/workflows.py", line 638, in run
	    runner.run(execgraph, updatehash=updatehash, config=self.config)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/linear.py", line 82, in run
	    raise error from cause
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/linear.py", line 47, in run
	    node.run(updatehash=updatehash)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
	    result = self._run_interface(execute=True)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
	    return self._run_command(execute)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
	    raise NodeExecutionError(msg)
	nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node schaefer200.

	Cmdline:
		dsi_studio --action=ana  --connectivity=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_anat_wf/get_atlases/tpl-MNI152NLin2009cAsym_res-01_atlas-Schaefer2018Ext_desc-200Parcels7NetworksLPS_dseg_to_dwi.nii.gz --connectivity_type=pass,end --connectivity_value=count,ncount,mean_length,gfa --source=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer200/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz --thread_count=1 --thread_count=1 --tract=/tmp/qsirecon_wf/sub-HM01_dsistudio_pipeline/sub_HM01_ses_SC3Tx20231019x1312_acq_MultiShellDir117_space_T1w_desc_preproc_recon_wf/streamline_connectivity/calc_connectivity/dsistudio_atlasgraph/schaefer200/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.trk.gz
	Stdout:

	Stderr:

	Traceback:
		Traceback (most recent call last):
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 397, in run
		    runtime = self._run_interface(runtime)
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 764, in _run_interface
		    runtime = run_command(
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 141, in run_command
		    _process()
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 137, in _process
		    stream.read(drain)
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 42, in read
		    while self._read(drain) is not None:
		  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/utils/subprocess.py", line 49, in _read
		    buf = os.read(fd, 4096).decode(self.default_encoding)
		UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data

@mattcieslak
Copy link
Collaborator

Would you be able to share the problematic data with me? We can switch to email to figure out how to transfer

@cookpa
Copy link
Collaborator Author

cookpa commented Dec 6, 2023

Yes definitely

@mattcieslak
Copy link
Collaborator

Updating here for posterity: This error only arises in single thread mode.

@mattcieslak
Copy link
Collaborator

I'm going to update python in the qsiprep image to a higher version, maybe a newer version of python multiprocessing will help with this and some of the hanging issues in the current qsiprep.

@mattcieslak mattcieslak added this to the 0.20 milestone Dec 11, 2023
@mattcieslak mattcieslak self-assigned this Dec 11, 2023
@mattcieslak
Copy link
Collaborator

@cookpa when you get a chance could you see if the current unstable tag works for you? I'm hoping that upgrading to python 3.10 will fix the multiprocessing-related issues (possibly related nipy/nipype#3209)

@cookpa
Copy link
Collaborator Author

cookpa commented Jan 11, 2024

@mattcieslak Running now. I noticed a backwards compatibility issue. It used to be that I could run with --recon_input /data/output, and it would find data under /data/output/qsiprep/. Now that fails with the error below.

240111-16:18:07,724 nipype.workflow IMPORTANT:
	 
    Running qsirecon version 0.19.2.dev13+g13225c4.d20240110:
      * BIDS dataset path: /data/bids.
      * Participant list: ['HM01'].
      * Run identifier: 20240111-161806_19d42e55-609d-4ce3-9ba2-14d06dc96904.
    
240111-16:18:07,777 nipype.workflow INFO:
	 sub-HM01 not in /data/output, trying recon_input=/data/output/qsiprep
240111-16:18:07,998 nipype.workflow INFO:
	 found ['/data/output/qsiprep/sub-HM01/ses-SC3Tx20231019x1312/dwi/sub-HM01_ses-SC3Tx20231019x1312_acq-MultiShellDir117_space-T1w_desc-preproc_dwi.nii.gz'] in /data/output/qsiprep
240111-16:18:07,999 nipype.workflow INFO:
	 Missing T1w QSIPrep outputs found: /data/output/sub-HM01/anat/sub-HM01_desc-brain_mask.nii.gz /data/output/sub-HM01/anat/sub-HM01_desc-preproc_T1w.nii.gz
240111-16:18:08,0 nipype.workflow INFO:
	 Missing T1w QSIPrep outputs: /data/output/sub-HM01/anat/sub-HM01_from-T1w_to-MNI152NLin2009cAsym_mode-image_xfm.h5 /data/output/sub-HM01/anat/sub-HM01_from-MNI152NLin2009cAsym_to-T1w_mode-image_xfm.h5
Process Process-2:
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/local/miniconda/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/run.py", line 1198, in build_recon_workflow
    retval['workflow'] = init_qsirecon_wf(
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/workflows/recon/base.py", line 99, in init_qsirecon_wf
    single_subject_wf = init_single_subject_wf(
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/workflows/recon/base.py", line 208, in init_single_subject_wf
    anat_ingress_node, available_anatomical_data = init_highres_recon_anatomical_wf(
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/workflows/recon/anatomical.py", line 95, in init_highres_recon_anatomical_wf
    raise Exception("Cannot compute to-template")
Exception: Cannot compute to-template

It's running now that I put --recon_input /data/output/qsiprep. Will report once it finishes

@cookpa
Copy link
Collaborator Author

cookpa commented Jan 11, 2024

Still failing with a single thread - BTW did I pull the right version?

singularity build qsiprep-unstable.sif docker://pennbbl/qsiprep:unstable

I ask because I still see python 3.8 in the error messages

@mattcieslak
Copy link
Collaborator

@mattcieslak
Copy link
Collaborator

just checked the most recent unstable and it's now python 3.10.13, sorry for the confusion

@cookpa
Copy link
Collaborator Author

cookpa commented Jan 12, 2024

@mattcieslak got it, but I'm still seeing the same Unicode error, unfortunately

@cookpa
Copy link
Collaborator Author

cookpa commented Jan 12, 2024

Still works with 2 threads

@mattcieslak
Copy link
Collaborator

oh that's disappointing. Is using 2 threads ok for now? I might have to bump this to the next milestone

@mattcieslak mattcieslak modified the milestones: 0.20, 0.21 Jan 12, 2024
@cookpa
Copy link
Collaborator Author

cookpa commented Jan 12, 2024

Sounds good, I'm fine with using two threads for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants