현상
confluence 업그레이드 후 특정 사용자에 대해 최근 방문한 페이지가 무한로딩
confluence log
2021-11-11 14:05:29,629 WARN [http-nio-9090-exec-1] [service.content.factory.DefaultContentMetadataFactory] getAllMetadataFromProviders API metadata provider module threw an exception attempting to expand metadata. Class : com.atlassian.confluence.plugins.recentlyviewed.cql.metadata.CurrentUserMetadataProvider provides properties [currentuser]. Exception java.lang.IllegalArgumentException: Multiple entries with same key: 12589066=com.atlassian.confluence.plugins.recentlyviewed.RecentlyViewed@c1b091b8 and 12589066=com.atlassian.confluence.plugins.recentlyviewed.RecentlyViewed@c1a27a37. To index multiple values under a key, use Multimaps.index.
해결방안
중복된 값 찾은 후 하나 삭제
다음 쿼리 실행
#중복된 값 찾기 SELECT * FROM AO_92296B_AORECENTLY_VIEWED WHERE USER_KEY = (SELECT USER_KEY FROM user_mapping where lower_username = '<영향받는 유저>') and CONTENT_ID=<로그에 보이는 중복된 키값>; #예제(현상 로그 참고) SELECT * FROM AO_92296B_AORECENTLY_VIEWED WHERE USER_KEY = (SELECT USER_KEY FROM user_mapping where lower_username = 'admin') and CONTENT_ID=12589066; CONTENT_ID | CONTENT_TYPE | ID | LAST_VIEW_DATE | SPACE_KEY | USER_KEY ------------+--------------+-------+-------------------------+-----------------+---------------------------------- 12589066 | PAGE | 19368 | 2021-11-11 13:04:38.461 | MOBILERENEWAL18 | bd7b278159636d7f0159636ed9040000 12589066 | PAGE | 19367 | 2021-11-11 13:04:38.46 | MOBILERENEWAL18 | bd7b278159636d7f0159636ed9040000 (2 rows) #중복된 값 중 하나 지우기 DELETE FROM AO_92296B_AORECENTLY_VIEWED WHERE ID='<ID shown in query output above>'; #예제 DELETE FROM "AO_92296B_AORECENTLY_VIEWED" WHERE "ID"='19368';