galaxyproject / galaxyproject/pulsar

Pulsar job not running - empty tool script?

Open
#389 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
46
Forks
62
Avg merge
3d 9h
Merged PRs (30d)
15

Description

Hello everyone!

I'm having trying to set up Pulsar (0.15.7) to serve a Galaxy server (24.2.2) but I've been running into a bit of trouble!

I think I've narrowed it down to empty tool_script.shs being created on the Pulsar end? In configs and configs.orig the tool_script looks ok (has size, correct contents), but in the root of the job dir the file exists but has no contents and is 0 bytes. tool_script.sh looks ok on the Galaxy side.

To investigate a bit I set up an inotify watch:

```
$ inotifywait -m -r /pulsar-store/files/staging/ -e create -e modify -e delete -e move
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
/pulsar-store/files/staging/ CREATE,ISDIR 5
/pulsar-store/files/staging/5/ CREATE tool\_id
/pulsar-store/files/staging/5/ MODIFY tool\_id
/pulsar-store/files/staging/5/ CREATE tool\_version
/pulsar-store/files/staging/5/ MODIFY tool\_version
/pulsar-store/files/staging/5/ CREATE launch\_config
/pulsar-store/files/staging/5/ MODIFY launch\_config
/pulsar-store/files/staging/5/ CREATE tool\_script.sh
/pulsar-store/files/staging/5/ CREATE submitted
/pulsar-store/files/staging/5/ MODIFY submitted
/pulsar-store/files/staging/5/ CREATE command.sh
/pulsar-store/files/staging/5/ MODIFY command.sh
/pulsar-store/files/staging/5/ CREATE command\_line
/pulsar-store/files/staging/5/ MODIFY command\_line
/pulsar-store/files/staging/5/ CREATE preprocessed
/pulsar-store/files/staging/5/ DELETE command\_line
/pulsar-store/files/staging/5/ MODIFY preprocessed
/pulsar-store/files/staging/5/ CREATE pid
/pulsar-store/files/staging/5/ MODIFY pid
/pulsar-store/files/staging/5/ CREATE,ISDIR tmp
/pulsar-store/files/staging/5/ CREATE,ISDIR home
/pulsar-store/files/staging/5/ CREATE,ISDIR working.orig
/pulsar-store/files/staging/5/ CREATE,ISDIR outputs.orig
/pulsar-store/files/staging/5/ CREATE,ISDIR configs.orig
/pulsar-store/files/staging/5/configs.orig/ CREATE tool\_script.sh
/pulsar-store/files/staging/5/configs.orig/ MODIFY tool\_script.sh
/pulsar-store/files/staging/5/ CREATE galaxy\_5.ec
/pulsar-store/files/staging/5/ MODIFY galaxy\_5.ec
/pulsar-store/files/staging/5/ CREATE return\_code
/pulsar-store/files/staging/5/ MODIFY return\_code
/pulsar-store/files/staging/5/ DELETE submitted
/pulsar-store/files/staging/5/ DELETE pid
/pulsar-store/files/staging/5/ CREATE final\_status
/pulsar-store/files/staging/5/ MODIFY final\_status
/pulsar-store/files/staging/5/ CREATE postprocessed
```

It seems to me that tool_script.sh is the only file which is created but not then modified? Stat seems to confirm this

```$ stat pulsar-store/files/staging/5/tool\_script.sh
File: pulsar-store/files/staging/5/tool\_script.sh
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 253,1 Inode: 14599278 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-04-02 07:09:37.869721411 +0000
Modify: 2025-04-02 07:09:37.849281951 +0000
Change: 2025-04-02 07:09:37.849281951 +0000
Birth: 2025-04-02 07:09:37.849281951 +0000
```

Has anyone seen this before? Would anyone have any suggestions for more debugging or for fixes?

I tried modifying PREPARE_DIRS_TEMPLATE in directory.py to add a copy from `configs/tool_script.sh` to tool_script.sh - this allowed the job to run. However, then the outputs were not being picked up! I'm sure there must be some config or other I am missing.

My job conf contains:

```
[...]

http://{galaxy-url}
amqp://{user:pass@rabbitmq-url}:5672//pulsar/pulsar_au
[...]

/files/staging
remote_transfer

[...]
```
Many thanks! :)

Contributor guide

Open the contributing guide

Research direction

Start with directory.py and PREPARE_DIRS_TEMPLATE, then trace how the staging job directory is prepared from configs/tool_script.sh under the shown jobs_directory and remote_transfer settings. Reproduce the empty root tool_script.sh and verify that a fix preserves output collection as well as job execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rabbitmq
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.