Search
Duplicate

공유사물함 만료시간 관련 버그

분야
BE
ISSUE
주제
BE
심각도
중간😵
제보자
eunhcho
담당자
작성자
상태
처리 완료
작성일자
2023/04/23 05:37
공개여부
공개
글감

문제 상황

어떤 것을 하려다가 문제가 발생했는가?
공유 사물함 반납일이라서 반납 후 재등록 하려는데 위와 같은 에러가 발생
두명 사용(만료 X - 2/3)
누군가 신청했다가 나갔음(만료 설정 - 3/3 -> 2/3)
기존에 있던 둘 중에 한명이 나감(1/3)
나갔던 한명이 1 ~ 2주 다른 사물함(개인) 사용하다가 반납 후에 다시 들어옴 (2/3)
반납일자 안내 메일을 받고 반납을 했음(1(나갔던 한명)/3)
이 때, 남은 한 분은 남아 계셨던 상황
다시 등록하려고하는데 에러메시지가 떴음.
set_expire_available인 공유 사물함에서, 1명에서 2명이 될 때 2번째로 들어온 사람의 expire_time이 9999-12-30으로 찍힘.

원인

추정되는 원인
1.
최초 3명이 모였을 때 모두에게 만료시간이 설정이 안 됐다.
2.
세 명이 모여서 쓰고 있다가 중간에 한 명이 반납을 하고, 새로운 유저가 대여 했을 때, 이 유저의 만료시간이 설정이 안 됐다.
실제 원인 1. lentComponent에서 lent로 transition하는 메서드에서, 대여를 진행하고, 꽉 차는 경우에 대한 expire를 설정해주는 로직은 있었으나, 그 이외의 경우(1 → 2명과 같은 경우)에 대한 처리가 없었다.

최종 해결

최종 해결을 위한 시행착오(optional)
임시로 재대여 처리
3명이서 인간 디버깅으로 문제 상황을 재구현해보면서 DataGrip으로 문제 상황을 파악했다.
공유 사물함에서 시뮬레이션을 하면서 진행해야 했으므로, Dev EC2에서 별도의 브랜치를 이용하여 코드를 수정 - 빌드 - 리로드 하면서 디버깅을 진행했다.
해결방법 비어 있는 코드 로직을 추가하였다.

참고자료