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

[버그] 멤버 추가시 중복 등록되는 문제 발생. #364

Closed
thorwel opened this issue Mar 9, 2018 · 3 comments
Closed

[버그] 멤버 추가시 중복 등록되는 문제 발생. #364

thorwel opened this issue Mar 9, 2018 · 3 comments
Labels
Milestone

Comments

@thorwel
Copy link

thorwel commented Mar 9, 2018

repo.yona.io에서도 테스트 해보았습니다.

repo.yona.io는 충분히 빠른 시스템이라 상황 재연이 안되었는데요,

현재 사내 시스템으로 멤버 추가 시, 약간의 처리 시간이 걸립니다.
그 짧은 순간 연속해서 클릭하게 되면 멤버가 중복해서 등록이 되고,
해당 멤버는 삭제 할 수 없게 됩니다. (두둥..)

예를 들어 동일 인물이 한 프로젝트에 2명 이상이 포함이 될 수 있고,
그 2명에 대한 모든 삭제가 불가능합니다.

yona 1.9.0 버전
mariadb 10.2 버전 사용중입니다.

코드 확인은 못해봐서 모르겠지만,

아이디 등록 전에 중복 체크를 하고, 트랜잭션 처리는 되지 않는 것 같습니다.

  1. 중복 체크 시도
  2. insert 과정에서 중복 체크 안함. 또는 key값이 변동되어 저장 인것 같습니다...
@doortts doortts added the bug label Mar 9, 2018
@doortts
Copy link
Collaborator

doortts commented Mar 9, 2018

알려주셔서 고맙습니다. 다음 버전에서 패치버전에 포함시키도록 하겠습니다.

ps.
우선 위 문제 해결은 하셨나요?

여전하시다면 아래 sql 한 번 실행해 주세요.

 delete p1 from project_user p1, project_user p2 
 where p1.id > p2.id 
 and p1.user_id = p2.user_id 
 and p1.project_id = p2.project_id 
 and p1.role_id = p2.role_id;

@doortts doortts added this to the Yona v1.9.1 milestone Mar 9, 2018
@thorwel
Copy link
Author

thorwel commented Mar 9, 2018

@doortts 현재 DB 확인후 일괄 수정했습니다. 감사합니다~

doortts added a commit that referenced this issue Mar 15, 2018
It is possible to be duplicated when to add a user as a project member.

The best solution is searching and removing all duplicated members.
And after that, add unique constraints into project_user table.

```
delete p1 from project_user p1, project_user p2
 where p1.id > p2.id
 and p1.user_id = p2.user_id
 and p1.project_id = p2.project_id
 and p1.role_id = p2.role_id;

alter table project_user
add constraint uq_project_user_1 unique (user_id, project_id, role_id);
```

But more easy way to control this bug is just making it removable from project member.
This commit implemented second one.

See: Yona Github issue #364
mjpark03 pushed a commit that referenced this issue Mar 22, 2018
It is possible to be duplicated when to add a user as a project member.

The best solution is searching and removing all duplicated members.
And after that, add unique constraints into project_user table.

```
delete p1 from project_user p1, project_user p2
 where p1.id > p2.id
 and p1.user_id = p2.user_id
 and p1.project_id = p2.project_id
 and p1.role_id = p2.role_id;

alter table project_user
add constraint uq_project_user_1 unique (user_id, project_id, role_id);
```

But more easy way to control this bug is just making it removable from project member.
This commit implemented second one.

See: Yona Github issue #364
@doortts
Copy link
Collaborator

doortts commented Mar 22, 2018

@thorwel 중복 멤버 삭제를 지원하는 v1.9.1 가 릴리즈 되었습니다.

@doortts doortts closed this as completed Jun 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants