[Recorders] Recorder side remains registered after removal (IP G3)

Description

Stella: 2.0.78-3

Org id: EABZ2896

DW-VP09: 1.5.6.1

P2P-4C1C283CDD9F-17376F

Admin1234!


Summary:
Recorder remains in registered status on the recorder side after being deleted from myDW, despite deletion from the organization.

Steps:

  • Recorder was deleted from myDW.

  • Recorder was correctly removed from the organization in myDW.

  • On the recorder side, status still shows as registered.

  • Behavior differs from IP G4, which correctly updates the status.

Attachments

Upload attachments

Drop your files to upload

(Max file size: 1.00 GiB)

Uploading...
(Template) Current File Name (1 / 7) 123KB / 2.1MB
(Template) File Name 123KB / 2.1MB
Upload completed. Click here to reload the page.

Child issues

Linked work items

Activity

Jake (jake@focushns.com) 22 August 2025, 09:03

G3에서 제가 직접 API를 호출해 보면 정상적으로 deregister가 되는 것으로 보아, agent에서 API 호출만 해 주면 될 것으로 보이는데, 왜 안하고 있는지는 모르겠네요.

아래 스크린샷은 직접 API를 호출해 deregister를 테스트 해 보기 위해 POSTMAN으로 보내본 것인데, 이렇게 호출하니 정상적으로 deregister는 됩니다.

Jake (jake@focushns.com) 22 August 2025, 08:57

확인해 보니, myDW에서 delete를 하게 되면 agent가 그 정보를 받고, 내부적으로 API를 호출해 cloud 사용자를 삭제하고 agent/status 명령으로 deregister 시키는 API를 호출하게 되어 있습니다.

그런데, G3의 경우 동일 Agent 소스로 빌드한 것을 넣어두었는데도, delete에 대한 이벤트는 받은것 같은데, 그 다음 NVR 내부 API를 호출하지 않는 것으로 보입니다.

G4에서는 정상적으로 호출 되고요.

저희가 사용중인 agent 소스는 2025. 2. 27.자 1.0.39 버전입니다.

G3의 경우 콘솔 로그는 아래와 같이 남습니다.  (deactivate 는 받았으나 더이상 NVR의 API를 호출하지 않음)

=============

[DEBUG] 2025-08-22 19:16:22:060968 ] received message for agent : POST /ec2/deactivate

[DEBUG] 2025-08-22 19:16:23:220206 ] total gc pipe = 0

[DEBUG] 2025-08-22 19:16:23:260254 ] active peer(s) = 0, total inout = 0.00

(39)

G4의 경우 콘솔로그는 아래와 같이 남습니다. (정상적으로 NVR의 API를 호출해서 삭제절차가 진행 됨)

=============

[DEBUG] 2025-08-22 19:00:38:498184 ] received message for agent : POST /ec2/deactivate

[DEBUG] 2025-08-22 19:00:38:527670 ] CSl_MsgHandler::deactivate cmd recv.

[DEBUG] 2025-08-22 19:00:38:528406 ] CSl_Ctrl::passing cmd to cloud svc

[DEBUG] 2025-08-22 19:00:40:724366 ] [INST] Get image success: ch=0

{

  "error" : 7001,

  "errorString" : "Camera not found."

}[DEBUG] 2025-08-22 19:00:41:365538 ] [INST] Put image failed: ch=0, resCode=500)

[DEBUG] 2025-08-22 19:00:41:366228 ] [INST] Get image failed: ch=4, status=Offline

[DEBUG] 2025-08-22 19:00:41:366919 ] doPost(https://backend.stella.mydw.cloud/api/v2/report/update/fromDevice/installation/default/{8c:1f:64:d1:90:32 }/4) failed: URL using bad/illegal format or missing URL

[DEBUG] 2025-08-22 19:00:41:367528 ] [INST] Put error failed: ch=4, resCode=0)

[DEBUG] 2025-08-22 19:00:41:368066 ] CSl_CloudSvc::doInstReport 0 of 2

[DEBUG] 2025-08-22 19:00:41:368602 ] CSl_CloudSvc::start installation report: reportId=default

[DEBUG] 2025-08-22 19:00:45:631461 ] active peer(s) = 0, total inout = 0.00

(39)

[DEBUG] 2025-08-22 19:00:45:812006 ] total gc pipe = 0

[DEBUG] 2025-08-22 19:00:46:504072 ] [INST] Get image success: ch=0

[ INFO] 2025-08-22 19:00:47:071502 ] CSl_WebServer:: conn=0

{

  "error" : 7001,

  "errorString" : "Camera not found."

}[DEBUG] 2025-08-22 19:00:47:084177 ] [INST] Put image failed: ch=0, resCode=500)

[DEBUG] 2025-08-22 19:00:47:085175 ] [INST] Get image failed: ch=4, status=Offline

[DEBUG] 2025-08-22 19:00:47:085897 ] doPost(https://backend.stella.mydw.cloud/api/v2/report/update/fromDevice/installation/default/{8c:1f:64:d1:90:32 }/4) failed: URL using bad/illegal format or missing URL

[DEBUG] 2025-08-22 19:00:47:086504 ] [INST] Put error failed: ch=4, resCode=0)

[DEBUG] 2025-08-22 19:00:47:087047 ] CSl_CloudSvc::doInstReport 0 of 2

[DEBUG] 2025-08-22 19:00:47:087583 ] CSl_CloudSvc::EVT_NOTI_FORCE_DEREGISTER

[DEBUG] 2025-08-22 19:00:47:088134 ] Start removing cloud users...

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:8921][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:47]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:47]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:47]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:47]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:47]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:47]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:47]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:47]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:47]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[DEBUG] 2025-08-22 19:00:48:032243 ] build:2024-12-02 17:16:37, active peer(s) = 0, total inout = 0.00

(66)

[1.6.0.4][19:00:48]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:48]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:48]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:48]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:48]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:48]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:48]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:48]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:48]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:48]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:48]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:48]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:48]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:48]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:48]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:49]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:49]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[1.6.0.4][19:00:49]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = setup/general/user

[1.6.0.4][19:00:49]..(1802638352) [setup.c:234]size diff 279960 vs 10632 check rdsize 280472

[1.6.0.4][19:00:49]..(1802638352) [setup.c:264]=== enc size diff 2160 vs 2160

[DEBUG] 2025-08-22 19:00:49:360465 ] removed 11 users, err=0

[DEBUG] 2025-08-22 19:00:49:361315 ] setting FW to dereg state...

[1.6.0.4][19:00:49]..(1802638352) [json/jsonCmd.c:9142][JSON CMD] command = agent/status

[1.6.0.4][19:00:49]..(1802638352) [dw.agent/dw.agent.c:339][AGENT] -m 30 -X POST -d '{"mydw_account_info": {"username": "jake@focushns.com","password": "7aMxXD4ScNVTqqMBSLxh4w==","account_number": "STG_EAAJ6652","location": ""},"vmax_access_info": {"username": "admin","password": "7aMxXD4ScNVTqqMBSLxh4w==","http": true,"http_port": 80,"https": true,"https_port": 443,"web_port": 80,"local_host": "127.0.0.1"}}' 'http://127.0.0.1:59999/agent/deregister' -o '/tmp/dw.agent.request.1755914449377.out'

=====TcpServer: Peer IP address: 127.0.0.1:59582

[ INFO] 2025-08-22 19:00:49:406444 ] CSl_WebConn::data from (127.0.0.1:59582) - 491

>>> k=0, /agent/deregister

c = 1

[DEBUG] 2025-08-22 19:00:49:407104 ] request: deregister

[ INFO] 2025-08-22 19:00:49:407803 ] CSl_WebConn::finished (127.0.0.1:59582)

[ INFO] 2025-08-22 19:00:49:523558 ] CSl_WebServer:: disconnected (127.0.0.1:59582)

socket no error

CSl_TcpConn::svc poll error (-2)

[1.6.0.4][19:00:50]..(1844601872) [dw.agent/dw.agent.c:549][AGENT] -m 30 -X GET 'http://127.0.0.1:59999/agent/servers/brown' -o '/tmp/dw.agent.mediaServer.1755914450558.out'

=====TcpServer: Peer IP address: 127.0.0.1:59590

[ INFO] 2025-08-22 19:00:50:586790 ] CSl_WebConn::data from (127.0.0.1:59590) - 97

>>> k=0, /agent/servers/brown

c = 1

[DEBUG] 2025-08-22 19:00:50:587767 ] request: backend host

[1.6.0.4][19:00:50]..(1844601872) [dw.agent/dw.agent.c:566][AGENT] NEW mediaServer = https://backend.stella.mydw.cloud

[1.6.0.4][19:00:50]..(1844601872) [dw.agent/dw.agent.c:575][AGENT] Final mediaServer = https://backend.stella.mydw.cloud

CSl_TcpConn::svc - ERROR reading from socket ret(0)

[ INFO] 2025-08-22 19:00:50:595779 ] CSl_WebConn::finished (127.0.0.1:59590)

[ INFO] 2025-08-22 19:00:50:713344 ] CSl_WebServer:: disconnected (127.0.0.1:59590)

[DEBUG] 2025-08-22 19:00:51:100398 ] {"error": "0","errorString": "","reply": {"id": "{dcd39d7a-63a3-9e9d-551f-85bbb622d5b7}","mac": "90-da-6a-ff-34-56","apiVersion": "3.6","status": {"error": 2,"errorString": "REGISTERED","currentStatus": "NOT REGISTERED"}}}

[DEBUG] 2025-08-22 19:00:51:102137 ] CSl_Ctrl::EVT_NOTI_DEREGISTERED

[ INFO] 2025-08-22 19:00:51:372102 ] CSl_TcpClient::svc - shutdown ssl

[ INFO] 2025-08-22 19:00:51:373172 ] CSl_TcpClient::svc - shutdown sock

[ INFO] 2025-08-22 19:00:51:373828 ] CSl_TcpClient::svc - close sock

[ INFO] 2025-08-22 19:00:51:374464 ] CSl_TcpClient::svc - finish

[DEBUG] 2025-08-22 19:00:55:632194 ] active peer(s) = 0, total inout = 0.00

(39)

FOCUS_JH 22 August 2025, 04:47

@FOCUS_JH G3는 동작 안되는것으로 확인되었고, G4는 느리게 반영되더라도 동작됨을 확인했습니다. 해당 이슈는 연구소에 전달 하겠습니다.

FOCUS_JH 22 August 2025, 04:15

@FOCUS_JH 동작시나리오 확인되었습니다. 1차 다시 검토해 보고 연구소에 내용 전달하겠습니다.

FOCUS_JH 22 August 2025, 02:56

증상은 확인되었는데, G4도 하다보니 동일하게 증상이 나오는데. 혹시 이부분 동작 시나리오는 전재현 부사장님과 체크가 된것인가요? ..DVR은 삭제 버튼이 아직 비활성화 되어있던데..

Paul S. Kim 22 August 2025, 00:49

@FOCUS_JH 분당 연구소가 IP G3가 없어서 재현이 불가합니다. IP G4는 문제가 없다고 하니 검토 부탁드립니다.