Skip to content

Deleting a User that belongs to an org with 0 repositories may result in database error in mssql #34448

Closed
@ChristopherHX

Description

@ChristopherHX

Description

user_service.DeleteUser(t.Context(), user, true) fails on mssql for userid 2 in testdata

Due to NumRepos being 0 for one org this user belongs to.
https://github.com/go-gitea/gitea/blob/7a097138deeb0289c1d52c942eb1b1dfe20d1cda/services/org/user.go#L67-L68

Not a problem on any other database

Gitea Version

1.24-rc0

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

No response

Git Version

1.39.5

Operating System

macOS

How are you running Gitea?

in test environment

// Test that the ephemeral runner is deleted when a user is deleted
func testEphemeralActionsRunnerDeletionByUser(t *testing.T) {
	defer tests.PrepareTestEnv(t)()

	_, err := actions_model.GetRunnerByID(t.Context(), 34350)
	assert.NoError(t, err)

	task := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionTask{ID: 52})
	assert.Equal(t, actions_model.StatusRunning, task.Status)

	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})

	err = user_service.DeleteUser(t.Context(), user, true)
	assert.NoError(t, err)

	_, err = actions_model.GetRunnerByID(t.Context(), 34350)
	assert.ErrorIs(t, err, util.ErrNotExist)
}

Database

MSSQL

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions