apache / apache/buildstream

set_ref not properly globally reflecting to node state changes

Open
#1,642 20 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
140
Forks
45
Avg merge
1d 3h
Merged PRs (30d)
6

Description

Noticed while using cargo plugin with pypi plugin (which does not need to fetch sources on track). Using cargo plugin with any plugin where tracking results in source fetch hides the bug.

Sequence goes on the ballpark

1. configure gets called for first source, reads data from node
2. track gets called for first source, resolves data for update
3. set_ref gets called for first source, writes data to node
5. track gets called for second source, requests fetch for previous ~~element~~ source
6. configure gets called again for first source (apparently with different plugin instance), reads data from node but this is not the data from previous tracking attempt but stale data
7. tracking for second element fails because correct data for first source is not in cache

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the configure, track, and set_ref sequence with the cargo plugin and a source-fetching plugin, then compare the node state seen by the later configure call. Trace why the first source's tracked data is stale before the second source is tracked; done means the second tracking step sees the updated first-source data.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.