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

kuberun does not export function defined in project nextflow.config #870

Closed
micans opened this issue Sep 27, 2018 · 4 comments
Closed

kuberun does not export function defined in project nextflow.config #870

micans opened this issue Sep 27, 2018 · 4 comments

Comments

@micans
Copy link

micans commented Sep 27, 2018

Bug report

I run the exact same pipeline on LSF and k8s (almost identical command lines,
using kuberun for the latter):

nextflow run cellgeni/rnaseq-noqc -profile farm3 --samplefile $samplefile --genome GRCh38 --runtag $sid --studyid $sid
nextflow kuberun cellgeni/rnaseq-noqc -profile docker --samplefile $samplefile --genome GRCh38 --runtag $sid --studyid $sid -c nf.config -v nf-pvc:/mnt/gluster/

Expected behavior and actual behavior

On LSF this works fine. I expect it to work in the same way on k8s. The first process runs fine on k8s. The second process uses a function check_max defined in the project nextflow.config (https://raw.githubusercontent.com/cellgeni/rnaseq-noqc/master/nextflow.config). The first instance of the second process fails immediately with the message below:

Program output

(many irods processes)
. . .
[c9/4ee3f1] Submitted process > irods (febc_C)
[57/f08b79] Submitted process > irods (febc_D)
ERROR ~ Error executing process > 'crams_to_fastq (coxy_A)'

Caused by:
  No signature of method: check_max() is applicable for argument types: (nextflow.util.MemoryUnit, java.lang.Stri
Possible solutions: check_log(java.lang.Object)

Steps to reproduce the problem

I'll describe more context here. The nextflow log file is attached. The nf.config file from kuberun is this:

params { genomes_base = "/mnt/gluster/data/nf-inputs" }
executor { queueSize = 30 }
k8s { userDir = '/mnt/gluster/svd/tic-97' }

process {
  maxForks = 30
  afterScript = 'sleep 2'
}

After execution, if I visit k8s.userDir, there is a nextflow.config file there created by NF itself, clearly representing a dump of internal configuration state or a subset thereof. In this file check_max is absent. It seems as if the function definition is not exported. I can make a reproducible test-case, but it will require more time and I have some hope that this describes the problem to a good extent.

Environment

I've tested this both with 32 (version 0.32.0 build 4897) and with 31 (don't have version ready):

bc-2,TIC-misc/tic-97, nextflow -version

      N E X T F L O W
      version 0.32.0 build 4897
      last modified 27-09-2018 10:17 UTC (11:17 BST)
      cite doi:10.1038/nbt.3820
      http://nextflow.io

bc-2,TIC-misc/tic-97, java -version
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
bc-2,TIC-misc/tic-97, uname -a
Linux bc-29-3-02 3.2.0-105-generic #146-Ubuntu SMP Fri Jun 10 20:10:44 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

nextflow.log

@pditommaso
Copy link
Member

pditommaso commented Oct 1, 2018

The problem is that kuberun creates its own config file and was not taken in consideration to possibility of defining custom function in the NF configuration.

A solution could be provided implementing check_max as a built-in function as suggested by #640.

In any case I need to verify if it's possible to support custom method in nextflow.config file when using kuberun command.

@pditommaso
Copy link
Member

The idea to solve this issue is to move custom functions defined in the config file in library files. This requires #940.

@courcelm
Copy link

I also ran into the check_max issue while running the nf-core/mhcquant on Kubernetes. This issue is almost one year old. Any plan to fix this?

@stale
Copy link

stale bot commented Apr 27, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

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

No branches or pull requests

3 participants