galaxyproject / galaxyproject/pulsar
Pulsar job not running - empty tool script?
- 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
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