MetaMask / MetaMask/metamask-extension

Reenable `migration log breadcrumbs when there is an invariant state error in a migration` test

Open
#21,807 0 comments 0 reactions 0 assignees View on GitHub
team-extension-platform
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

### What is this about?

There seems to be a timing issue that causes the breadcrumbs to finish being captured before all migrations are run.

Out of 30 consecutive test runs, these migrations were run:

26 times
migrationLogMessages [
'Running migration 75',
'Running migration 76',
'Running migration 77',
'Running migration 78',
'Running migration 79',
'Running migration 80',
'Running migration 81',
'Running migration 82'
]

2 times
migrationLogMessages [
'Running migration 75',
'Running migration 76',
'Running migration 77',
'Running migration 78',
'Running migration 79',
'Running migration 80',
'Running migration 81',
'Running migration 82',
'Running migration 83',
'Running migration 84'
]

2 times
migrationLogMessages [
'Running migration 75', 'Running migration 76',
'Running migration 77', 'Running migration 78',
'Running migration 79', 'Running migration 80',
'Running migration 81', 'Running migration 82',
'Running migration 83', 'Running migration 84',
'Running migration 85', 'Running migration 86',
'Running migration 87', 'Running migration 88',
'Running migration 89', 'Running migration 90',
'Running migration 91', 'Running migration 92',
'Running migration 92', 'Running migration 92',
'Running migration 92'
]

(the 4 migration 92 include 92, 92.1, 92.2 and 92.3)

Only migrations starting at 75 are run because of:

```js
build() {
this.fixture.meta = {
version: 74,
};
return this.fixture;
}
```

### Scenario

_No response_

### Design

_No response_

### Technical Details

_No response_

### Threat Modeling Framework

_No response_

### Acceptance Criteria

_No response_

### References

_No response_

Contributor guide

Open the contributing guide

Research direction

Locate the disabled test named “migration log breadcrumbs when there is an invariant state error in a migration” and inspect its fixture build() method, which starts migrations at version 74. Run the test repeatedly to reproduce the timing variation, then restore it once breadcrumb capture consistently includes the migrations through version 92.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
databases, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.