읽을 수없는 첨부 파일 대신 500ing
이미 이미지 프록시는 410에 대한 액세스 및 제거 메시지, 하지만 openRange의 IOException 탈출 uncaught — 그래서 하나의 경우 어디 바이트는 단순히 absent가 공백 500이되었습니다. 브라우저의 <audio>/<video> 500을 렌더링 할 수 없습니다;...
한 번에 두 번의 반응은 무려 500
setReaction read, 그 후 저장, 그 후 읽음을 위반 방지 - 작동하지 않는 : 플러시의 위반 표면, 캐치 후, 이미 롤백 전용 거래. 같은 이모티콘과 반응하는 두 개의 장치 동일한 즉시는 500 대답하고 반응을 뒤 구른 것입니다. 이제는 CONFLICT에 공유 라이브러리...
아이 org의 로비는 플랫폼이 아닌 자신의 배경을 제공합니다
Org의 회의 배경 및 테마 구성을 보유하는 폴더는에서 파생되었습니다 hostname — the request's, 또는 org 도메인 sidecar는 전달 — 으로 두 개의 라벨을 열고 dash로 가입하십시오. 그것은 두 번 이상 잘못되었다. gnosia.demo.kamocrm.co...
One phone, one alert — collapse duplicate push destinations
Members were getting the same chat message three-plus times on their phone. Registrations are unique on (device_token_id, org_id, push_kind), NOT on the push t...
Route getChatSessions'읽지 않은 주변을 통해 OwnAuthorshipAmbiguity
MediaController.getChatSessions 의 사전 추출 버전 "그 사람이 쓴거야?" 규칙 (rowVisitor != null && callerId **************** 공개를 덮은 것 웹 채팅 케이스. SOCIAL 세션의 방문자 메시지는 아래에 저장됩니다 같은 ...
2개의 리뷰 결과에 대한 일관성 오류 처리 및 계층화
작업에 대한 검토 14 과 15: - SystemBugController는 SystemBugRepository 필드를 열고 직접 queried 새로운 벌레 조사를 위해, 그 종류에 있는 다른 모든 읽는 동안 갑니다 SystemBugService — 동일한 데이터에 도달하는 두 가지 방...
Guard 읽지 않은 조회 자체, 뿐만 아니라 방송
Task 9에 대한 리뷰 : persistInbound는 @Transactional이며, 방송() per-member 루프 내부 호출은 예외적 안전 (it swallows) 그것의 자신의 실패) — findBySession 조회 그것을 먹이지 않았습니다. 오시는 길 repository/...
쿼리 밖에서 검색 패턴을 작성하고 테스트에서 쿼리를 파
likePattern은 '%'로 absent 검색 용어를 켭니다. 문자열 표현에 도달하고 %를 탈출 용어에서 그래서 검색 리터의 underscore는 어떤 문자도 일치하지 않습니다. SystemBugQueryTest는 선택과 카운트 쿼리를 모두 구문합니다. 현실적인 모형. 기존의 ...
Stamp 모든 읽지 않은 프레임은 즉시 계산을 읽었습니다
회원의 읽지 않은 스냅 샷을 구축 한 4 곳 — REST read, the 메시지가 도착했을 때 프레임이 전송되면 세션이 표시됩니다. read, 그리고 하나의 웹 채팅 방문자의 메시지 트리거 — 각각 조립 손에 의해 동일한 집계는 그것을 unstamped 보냈습니다. 그들은 주문하지 않...
게으른 협회를 걷지 않고 대중 채팅의 소유자를 해결
getChatSessions는 거래 밖에서 실행되므로 방문자를 통해 세션 소유자에 도달 게으른 세션 프록시는 열려있을 때에만 작동 — 채팅 목록 그 500s 변경을 설정하면 거래 가치가 없습니다. 세션에서 id를 읽으십시오. 대신 저장소.
웹 채팅 방문자로 org의 시스템 구성원을 읽으십시오
4개의 보고된 결함, 1개의 원인. 위젯 방문자는 회원이 없습니다, 그래서 org의 시스템 구성원 — 소유자, 누가 큐를 작동 - 티켓의 requestor로 그들에 대한 스탠드 및 저자의 그들의 메시지. - 동의 팝업은 마케팅 채팅을 제공하지 않습니다. 청구 가능한 티켓 사전은 제안을...
자신의 JVM 힙 천장 위의 포드 크기 [skip ci]
이미지는 -XX를 가진 JVM를 시작합니다: MaxRAMPercentage=70 -XX:+ 항상PreTouch, 그래서 heap 혼자 걸릴 수 있습니다 70% 컨테이너 제한 및 사전 터치 모든 최선을 다하고 자주 묻는 질문 Non-heap - uncapped 메타 스페이스, 코드 캐시,...
공개 채팅은 카운트없이 페이지를 읽습니다
두 사이트가 .getContent()을 가져 와서 바닥에 총을 떨어졌다, 그래서 모두이었다 세션의 모든 개체에 동일한 discarded COUNT를 지불하는 것은 단지 500'd 회원 채팅의 역사 — 방문자의 자신의 역사 endpoint most 명백하게, 노출이 동일하다 : 읽은 발행...
JVM을 힙에 대 한 포드 크기를 이미 걸릴 수 있습니다
이미지가 JVM과 함께 시작합니다. -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch. 라이브 프로세스를 읽으십시오. MaxHeapSize=752877568 - 718Mi - 및 사전 터치는 거주 메모리 트랙을 추적 그 뒤에 거짓보다 오히려 커집니다. 이 서...
주제 만들기 CREATE SUPPORT TOPICS, 그것의 부모가 아닌
문은 이미 거기에 혼란스러운 외침 - MANAGE SUPPORT, 부모 - 그래서 CREATE SUPPORT TOPICS는 모든 편집기에서 장식으로 읽고 정확히 확인되는 기능. 어린이만 확인하는 것은 정확합니다: hierarchy 마감은 CREATE SUPPORT TOPICS를 개정합...
자료 및 소셜 타임라인은 권리, 소유권이 아닙니다
MANAGE MATERIALS and MANAGE SOCIAL MEDIA 감사 및 모든 것에 시행 사이트 .tsx 파일이었다. 그들 뒤에 29 종료점은 소유권과 권리를 확인합니다: 6 재료 컨트롤러 및 SocialTimelineController. 읽기 VIEW MATERIALS 또는...
회의 알림은 알림이며, 자체의 팝업이 아닙니다
/topic/meet/reminder/{memberId}에 스포크 이벤트를 게재했습니다. 해당 이용 후기에 달린 코멘트가 없습니다. 그 팝업 전체 알림이었다 : 알림 벨 결코 이동하지, 카드가 없었다 작성 및 6 초를 놓친 회원은 아무것도 없었습니다. 돌아가기. 또한 회원의 무트, 조용...
티켓 목록은 부서진 지표를 생존
읽지 않은 메시지보기 threw를 읽었고 전체 티켓 목록을 가져 왔습니다. - 페이지가 돌아 왔습니다. 비어 있는 페이지보다 훨씬 더 악화됩니다. 그것은 지금 감시하고, ERROR에서 감시: 이전 감시는 경고와에 기록했습니다 silence는 릴리스에 대한 "nothing 읽지 않은"로 ...
티켓 목록은 동일한 항목에 배지 수를 표시
countForMember는 개인적으로 구축 된 세트를 크기로, 그래서 목록은 요청할 수있는 방법이 없었다 어떤 티켓이 그것과 대신에 대 한 — 그것은 읽지 않은 채팅을 덧붙였다 메시지. 그들은 다른 질문입니다: 배지는 주로 일 계산 아무도 픽업, 목록은 읽지 않은 무언가와 대화를 표시...
티켓은 결코 그것을 올리는 회원에 의해 응답 할 수 없습니다
지원 대화에는 두 개의 측면이 있습니다. 누군가 묻고 누군가 대답 — 그들은 다른 사람들 이었노라 회원 보유 ACCEPT SUPPORT TICKETS in the org they asked for help from the perfect routing만큼 일반 대리인은, 그래서 둥근 로빈...
Endpoint에 아웃바운드 첨부 파일을 보내 유형에 속합니다
모든 소셜 첨부는 어댑터의 sendImage를 통해 갔다. Telegram은 /sendPhoto입니다. PDF 또는 zip이 게시되었습니다. 공급자 및 거부는 HTTP 응답이 말한 후 긴 도착 에이전트 그들의 메시지가 갔다 — 그래서 영수증은 고객이 등장 대리인의 자신의 창에서 결코 다...
객체 저장 비밀 ConfigMap 더 이상 운반하지
MinIO 키가 ConfigMap에서 minio-app-credentials로 이전되었습니다. secret, 하지만 env그것을 공급하는 것은 단지 살에 적용되었다 배포 — 절대 여기에. 다음 CI는 이 표현을 넓혀줍니다. ConfigMap을 기본과 환경 없이 남겨두면 그것을 만족시키고...
Config default로 공유된 자격 발송
플랫폼의 공유 암호는 DB PASSWORD에 대한 fallback으로 구워졌습니다. MINIO ROOT PASSWORD, 그래서 그것은이 저장소에 살았고 내장 된 이미지뿐만 아니라 클러스터에서. 생산은 DB 기본값을 사용하지 않는 — *** 공급 envFrom를 통해 DB PASSWO...
손으로 할당하면 PRE TICKET 상태를 사용하지 않아야 합니다
assignToAgent와 reassignAgent 세트 ASSIGNED unconditionally, 조용히 만든 나중에 변환 할 수없는 채팅 요청 — ConvertPreTicket accepts 아무것도하지만 PRE TICKET, 그래서 손을 제거하여 누군가에 라이브 채팅을 손 단지...
티켓이 손에 넣을 수 있음
assignToAgent 및 reassignAgent는 회원에게 해결 된 ID 만 확인했습니다. 할당은 티켓의 채팅 세션에 회원이 추가되므로 다른 곳에서 id를 추가합니다. 조직은 고객 대화를 주지 않을 것입니다. 보고, 오프 보드 회원은 라이브 작업을 담당 할 수 있습니다. 둘 다 ...
Auto Assignment는 티켓을 제공하지 않습니다
자동 할당 페이지 모든 사용 가능한 지원 에이전트 및 첫 번째 사람에 간다 이름 * 그것은 "일부는 적어도 버스 에이전트를 선택 온라인, 이는 다른 기능입니다 완전히 — 그리고 각자 패배 하나 여기에, 지정된 티켓이 청구 가능한 큐를 남긴 때문에 아무도 제안되지 않습니다. 그것과 작업은...
위젯 채팅에 대한 주제 전략을 실행
웹 위젯에서 열린 채팅은 하나의 파일 내부로 작업의 동일한 단위입니다 앱, 그러나이 경로는 주제의 할당 전략을 완전히 건너 뛸 수 있습니다 — the only 그것을 시도했다는 것은 차용인의 자신의 대출 임원이었다. 그래서 하나의 주제 방문자가 시작된 곳에 따라 두 가지 방법을 행동했습...
활동 프레임의 세션 유형을 너무 넣어
읽지 않은/ACTIVITY 방송은 모든 세션 유형에 게시되며 수행되지 않습니다. 주의사항 채팅 목록, 아무것도하지 않고, unseen을 입력 일반 채팅으로 세션 - 그래서 지원 티켓의 첫 번째 활동은 채팅으로 도착 row: false sub-tab, the ticket's system-...
메시지가 도착한 클라이언트에게 말하십시오
미디어 세션의 모든 구성원은 들어오는 메시지 알림을받습니다. 지원 티켓을 지정하면 그 티켓의 세션의 구성원이 됩니다. 더 보기 alert no session type, 그래서 클라이언트는 지원을 말할 수 없다 직접 메시지에서 티켓을 열고 일반 채팅 창을 모두 엽니 다 — 창 티켓의 통제...
라이브 채팅은 팝업을 통해 주장, 결코 할당되지
Round-robin을 통해 채팅 요청을 추적하는 것은 잘못된 모델이고 그것은 깨어 났습니다. 그것을 해결하는 것이 의미. 지정된 티켓은 청구 가능한 큐를 남깁니다. (SupportQueService는 할당된Agent IS NULL이 필요합니다), 그래서 채팅 할당 허용 팝업은 모든 사...
지정 실패를 중지하는 티켓을 파괴
새로운 티켓 랜을 생성 거래 안쪽에 추적, 그래서 아무것도 그것은 히트 그와 함께 티켓을 압연하고 도움이 필요한 회원은 " 실패 어디에서든지 저장하지 않는 티켓"을 만듭니다. 두 가지는 그것을 명중, 둘 다 latent 채팅 요청이 코드에 도달 시작 때까지 - 라운드 로빈은 효과적으로 ...
주제의 할당 전략을 통해 채팅 요청 경로
지원 채팅 요청은 PRE TICKET로 제출되며 createTicket Skipped 그들에 대한 할당. 감시는 web-chat 위젯을 위해 기록되었습니다, 사전 티켓은 결코 말할 수없는 익명의 방문자입니다. — but an in-app 채팅 요청은 이미 주제를 선택 한 알려진 org의...
공유 중지 *** idle 사용자를위한 TTL
이 서비스는 KSessionService의 자체 사본을 유지하고 TTL을 slid합니다. 모든 읽기. Gating SecurityService 혼자 따라서 고정 아무것도: kamo-internal 포인트 라이브 채팅, 존재 및 지원 표면이 서비스 및 새로 고침 키보드에서 아무도로 실행을...
한 시간 동안 그것을 잡고 대신 분에 죽은 업로드 실패
connectionUploadTimeout는 읽기 사이의 tolerated SILENCE이며 예산이 없습니다. 전체 이동. 1 시간에서 'match Traefik'로 설정하면 두 개의 혼동됩니다. 업로드는 500 MB의 2 GB 파일과 sat 거기에서 중지, 요청 스레드를 들고 Half...
Tomcat의 60s 연결 타임 아웃이 긴 업로드를 죽이는 중지
2 GiB 채팅 첨부 파일이 거의 4 분 후에 실패했습니다. MultipartException은 bare SocketTimeoutException을 감싸고 회원이 되었습니다. 'Internal Server Error'에 대해서 Tomcat의 disableUploadTimeout def...
Catch OptimisticLockException, 유형 40001 실제로 포장
라운드 3 검토 수정: hibernate-core의 **************** 테스트 LockAcquisitionException (무엇 SQLState 40001 로 변환) 에 대하여 순서에 있는 특정한 유형, 어떤 일반 LockAcquisitionException satisfie...
예외 유형의 충돌을 실제로 던져
라운드 2 검토 수정 : 문 레벨 40001 (일반적인 경우, 감지 내부 executeUpdate() 오히려 커밋에서) 표면 ****** ***********************************************************************************...
반환 409 모든 손실 청구 레이스에, 추가 관리자 청구 경로
라운드 1 리뷰는 수락 팝업 청구 엔드 포인트에 대한 수정 : - 일반 분실 레이스 (loser's isClaimableBy already false post-commit) 이제 TicketAlreadyCl 대상Exception (409) 대신 400 - 티켓 자체 우승자가 idempo...
이메일 저장소 DepartmentService가 필요합니다
MediaService CrashLooped on every pod since shared-lib 1.5.0: 부서서비스는 @Service, 그래서 와일드카드 @ComponentScan("com.kamo")는 이지 여부를 확인 서비스 접촉 부, 그리고 그것은 MailboxReposito...
반복된 params로 timeline 공급자 여과기를 받아들이십시오
웹 클라이언트가 전송 ?providers=facebook,x 한 CSV 값으로. 자주 묻는 질문 VALUE는 %2C로 여행하고, 다시 인코딩은 %252C로 전환; 우리는 한 번 디코드, 더 이상 존재하지 않는 comma에 분할, 전체 필터는 단일 실행 토큰 "Facebook%2Cx". ...
사용자 계정으로 missed-message 이메일 보내기, org mailbox
이 통지는 "당신은 메시지 대기, 로그인 및 그것을 읽었다"고 말했다, 그리고 그것은 mailbox에 전달 된이 조직은 회원 할당 — 그들은 단지 도달 할 수 로그인. 그것을 볼 수없는 사람은 사람을 위해이었다. Recipient 해결책은 지금 사용자 계정 주소 혼자 있습니다; Mem...
모든 대리인에게 읽지 않은 조사 대신에 살아있는 배지를 주십시오
Nav 배지 및 /support?tab=tickets는 다른 질문에 답했습니다. 사이트 맵 org의 모든 티켓 목록; 배지 카운트 읽지 않은 채팅 메시지 정확히 하나의 회원, 해결 된 org 소유자, 및 게시 support.agent.{ownerId} 각 브라우저가 자신의 회원 ID에 ...
Drop 클라이언트는 주제를 보호하고 HEAD에서 빌드를 복구
TWO THINGS, 배송에서 MediaService 메인을 중지합니다. 1. 주는 컴파일하지 않습니다. MediaController:1361 통화 **************** 존재하지 않는: SupportTicketService에 대한 방법은 **************** 90d4...
한 번 메시지를 발표, 때 전체
행이 저장 된 후 메시지를 마무리하는 두 개의 호출기는 이제 말 createMessage가 발표되지 않음 : MediaController는 이미지 및 출판물을 첨부합니다. Article Author HTML PHP Post Tag Tags Video WordPress 결혼 김사랑 노무현...
업로드 당 한 객체 대신 dedup 파이프라인을 통해 첨부
첨부파일은 자신의 "<imgId>/<fileName>" 객체를 모든 업로드, 우회 content-addressed store 전적으로 — 같은 Logo-draft.png는 한 번에 3 번 첨부 대화는 3개의 목표를 점유했습니다. 지금은 공유 ImgDat로 해시를 업로드, 그래서 동일 내...
공유 MFA 저장소 스캔
MfaEnrollmentService는 kamo-shared-library의 @서비스이므로 와일드 카드 @ComponentScan("com.kamo") 이 응용 프로그램에서 여부 또는 이지 여부를 구성 서비스는 MFA와 함께해야 할 일이 있습니다. — 그리고 그것의 constructor...
Flaky egress에 대한 kubectl 다운로드를 Harden [skip ci]
dl.k8s.io 런너의 egress 간에 실수로 중간 전송을 삭제: 컬: (56) OpenSSL SSL read: 해독 실패 또는 나쁜 기록 맥 그렇지 않으면 녹색 빌드에 배포되지 않습니다. 반복적으로 관찰 kamo-signer-monorepo 및 카모 번역 사전. 추가 --retr...
만료 된 와일드카드 비밀 대신 라이브 per-host cert를 마운트
Cert-converter init 컨테이너는 PKCS12 키 저장소를 내장 wildcard-kamocrm-com, 레거시 멀티 산 비밀 cert-manager orphaned 때 그것의 증명서는 per-host 비밀에 repointed. 아무것도 그것을 갱신하고 그것 만료 된 2026...
Cross-org 판매 에이전트를 거부; widen bootstrap 캐시 busting
salesAgentId는 요청 몸에서 unchecked, 그래서 십자가org 또는 dangling 대리인 ID는 WebChatIntegration에 저장될 수 있었습니다. 그것은 안전 만 실패 AIService가 org-scoped lookup으로 에이전트를 다시 읽기 때문에 데이터가되...
