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

no perf run for rustc PR #93089, #94061 #1159

Open
klensy opened this issue Jan 26, 2022 · 8 comments
Open

no perf run for rustc PR #93089, #94061 #1159

klensy opened this issue Jan 26, 2022 · 8 comments

Comments

@klensy
Copy link
Contributor

klensy commented Jan 26, 2022

Yet another one. There no (visible) perf run results for PR rust-lang/rust#93089. Queue is empty, but no run for that pr in queue.

@Mark-Simulacrum
Copy link
Member

As always, the perf run results are present - https://perf.rust-lang.org/compare.html?start=df368ae457c54fb95d3e64f9986a5f171a6370f0&end=17dfae79bbc3dabe1427073086acf7f7bd45148c&stat=instructions%3Au -- just no summary comment is posted. Investigating that now.

@Mark-Simulacrum
Copy link
Member

[2022-01-25T12:51:53Z DEBUG site::request_handlers::next_commit] next_commit: 17dfae79bbc3dabe1427073086acf7f7bd45148c (missing: Master { pr: 93089, parent_sha: "df368ae457c54fb95d3e64f9986a5f171a6370f0", is_try_parent: false }) was logged, which should mean we ran queue_pr -- but I don't see a row in the table from the query:

insert into pull_request_build (pr, complete, requested, include, exclude, runs) VALUES ($1, false, CURRENT_TIMESTAMP, $2, $3, $4) ON CONFLICT DO NOTHING

The table has a couple unique constraints:

   Column   |           Type           | Collation | Nullable | Default | Storage  | Stats target | Description
------------+--------------------------+-----------+----------+---------+----------+--------------+-------------
 bors_sha   | text                     |           |          |         | extended |              |
 pr         | integer                  |           | not null |         | plain    |              |
 parent_sha | text                     |           |          |         | extended |              |
 complete   | boolean                  |           |          |         | plain    |              |
 requested  | timestamp with time zone |           |          |         | plain    |              |
 include    | text                     |           |          |         | extended |              |
 exclude    | text                     |           |          |         | extended |              |
 runs       | integer                  |           |          |         | plain    |              |
Indexes:
    "pull_request_build_bors_sha_key" UNIQUE CONSTRAINT, btree (bors_sha)
    "pull_request_build_pr_idx" UNIQUE, btree (pr) WHERE complete = false

But I'm fairly confident they should not have impeded this row being inserted, so I'm confused why we don't have a row for this query -- maybe the on conflict do nothing is causing trouble? It seems like it should be fine...

@Mark-Simulacrum
Copy link
Member

Manually executing the two queries and hitting onpush seems to trigger the comment as before. @rylev / @nnethercote, do you perhaps have some idea for how to continue debugging this failure mode? My best guess right now is to add an ad-hoc select after inserting to try and confirm we inserted, but that feels... terrible and rather odd.

insert into pull_request_build (pr, complete, requested) values (93089, false, CURRENT_TIMESTAMP);
update pull_request_build set bors_sha = '17dfae79bbc3dabe1427073086acf7f7bd45148c', parent_sha = 'df368ae457c54fb95d3e64f9986a5f171a6370f0' where pr = 93089 and bors_sha is null;

@nnethercote
Copy link
Contributor

My secret shame is that I managed to skip out on the supposedly mandatory databases class at university and so I know almost nothing about this stuff. Sorry :/

@rylev
Copy link
Member

rylev commented Feb 2, 2022

@Mark-Simulacrum perhaps we could remove the ON CONFLICT DO NOTHING to see in a conflict is occurring (which would then cause a panic).

@Mark-Simulacrum
Copy link
Member

I'm pretty sure it's necessary -- the intent is that if there is already a row (e.g., we're queueing twice) that's OK. I guess we can avoid unwrap() and instead log::error! to avoid a panic (which would cause the end point to not return, seems bad).

It does seem like the right next step I guess, though I don't really understand how there can be a conflict with (what seems like) nothing, since there's no rows for the PR in the table.

@klensy klensy changed the title no perf run for rustc PR #93089 no perf run for rustc PR #93089, #94061 Feb 17, 2022
@klensy
Copy link
Contributor Author

klensy commented Feb 17, 2022

One more, rust-lang/rust#94061

@Mark-Simulacrum
Copy link
Member

Looks like same as before -- not present in pull_request_build, but we did benchmark it.

I am seeing the next_commit logged -- which looks like it should have produced the expected entry in pull_request_build:

[2022-02-16T22:11:18Z DEBUG site::request_handlers::next_commit] next_commit: 75d9a0ae210dcd078b3985e3550b59064e6603bc (missing: Master { pr: 94061, parent_sha: "f90b06d7fb00470177516c5881bcec0432cb4f24", is_try_parent: false })

I guess now that #1166 has been merged we'll try again on the next missed one.

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

No branches or pull requests

4 participants