Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (seongtaejeong at gmail.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

Unhandled Exception: Microsoft.Diagnostics.NETCore.Client.ServerNotAvailableException: Unable to connect to Process

Microsoft.Diagnostics.NETCore.Client를 사용해,

Microsoft.Diagnostics.NETCore.Client 
; https://www.nuget.org/packages/Microsoft.Diagnostics.NETCore.Client/

테스트로 덤프를 뜨는 shell script를 만들어 실행했더니,

$ cat test.sh
coproc dotnet /app/ConsoleApp1/bin/Release/net8.0/linux-x64/ConsoleApp1.dll

process_id=`/bin/ps -aux | grep "ConsoleApp1.dll" | grep -v "grep" | awk '{print $2}'`

/app/mdump/bin/Release/net8.0/linux-x64/publish/mdump $process_id /app/${process_id}.dmp

분명 "ConsoleApp1.dll" 프로세스는 실행되고 있었지만 WriteDump를 호출하는 부분에서 이런 예외가 발생합니다.

Unhandled Exception: Microsoft.Diagnostics.NETCore.Client.ServerNotAvailableException: Unable to connect to Process 219. Please verify that /tmp/ is writable by the current user. If the target process has environment variable TMPDIR set, please set TMPDIR to the same directory. Please see https://aka.ms/dotnet-diagnostics-port for more information
   at Microsoft.Diagnostics.NETCore.Client.PidIpcEndpoint.GetDefaultAddress(Int32) + 0x1f3
   at Microsoft.Diagnostics.NETCore.Client.PidIpcEndpoint.Connect(TimeSpan) + 0x17
   at Microsoft.Diagnostics.NETCore.Client.IpcClient.SendMessageGetContinuation(IpcEndpoint, IpcMessage) + 0x1c
   at Microsoft.Diagnostics.NETCore.Client.IpcClient.SendMessage(IpcEndpoint, IpcMessage) + 0x1a
   at Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient.WriteDump(DumpType, String, WriteDumpFlags) + 0x36
   at mdump.Program.Main(String[] args) + 0x114
   at mdump!<BaseAddress>+0x1671fc

사실, 원인은 잘 모르겠습니다. 예외 메시지에서 219라고 나온 Process ID도 정확하고, tmp 디렉터리도 분명히 writable인데다, 그렇다고 TMPDIR로 경로를 다르게 바꾼다 해도 문제가 해결되지 않습니다. 그런데, 혹시나 싶어 sleep을 넣었더니,

coproc dotnet /app/ConsoleApp1/bin/Release/net8.0/linux-x64/ConsoleApp1.dll

sleep 1

process_id=`/bin/ps -aux | grep "ConsoleApp1.dll" | grep -v "grep" | awk '{print $2}'`

/app/mdump/bin/Release/net8.0/linux-x64/publish/mdump $process_id /app/$PREFIX-$process_id.dmp

잘 됩니다. ^^;

뭐랄까, WriteDump 시 대상 프로세스 측에 닷넷 런타임의 초기화가 덜 이뤄진 것인지... 라는 짐작만 하게 됩니다.




그나저나, Bash Shell에서 환경변수를 이런 식으로 사용하면,

$ TEST=5
$ PID=100
$ echo "RESULT: $TEST_$PID"
RESULT: 100

의도했던 "5_100"이 아닌 "100"이 나옵니다. 밑줄("_")까지 사라진 것도 희한한데요, 왜냐하면 bash에서 변수는 "$" 접두사로 시작하지만 끝나는 접미사는 없기 때문에 유효한 변수 식별자를 모두 찾아서 치환하기 때문입니다. 즉, "$TEST_"가 하나의 변수로 인식된 것이고 그 값은 (null)이기 때문에 결국 "100"이 출력됩니다.

만약, 변수 영역을 확실히 지정하고 싶다면 중괄호를 이용해 감쌀 수 있습니다.

$ echo "RESULT: ${TEST}_$PID"
RESULT: 5_100




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 8/6/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  184  [185]  186  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
358정성태10/17/200623172오류 유형: 13. WSE 3.0 서비스 관련 WSE101 오류 / Destination Unreachable
357정성태12/1/200625440.NET Framework: 74. WCF 이야기 [4]
378정성태10/28/200630336    답변글 .NET Framework: 74.1. WCF와 WSE 3.0의 활용 [4]파일 다운로드1
379정성태11/3/200629250    답변글 .NET Framework: 74.2. WCF로 구현하는 .NET Remoting [4]파일 다운로드1
380정성태10/28/200628191    답변글 .NET Framework: 74.3. 웹 서비스와 닷넷 리모팅으로써의 WCF 구현파일 다운로드1
381정성태10/28/200630550    답변글 .NET Framework: 74.4. WCF 서비스 참조 추가 메뉴 [2]
382정성태10/28/200636572    답변글 .NET Framework: 74.5. WCF 서비스를 IIS에서 호스팅하는 방법파일 다운로드1
383정성태10/28/200631379    답변글 .NET Framework: 74.6. IIS 6.0: 다중 Endpoint 제공파일 다운로드1
384정성태10/28/200628305    답변글 .NET Framework: 74.7. IIS 7.0: 다중 Endpoint 제공
389정성태11/11/200631144    답변글 .NET Framework: 74.8. WCF에 SSL 적용 (1) - Httpcfg.exe 도구를 이용한 SSL 설정
390정성태11/6/200628331    답변글 .NET Framework: 74.9. WCF에 SSL 적용 (2) - 서비스 제작파일 다운로드1
356정성태10/7/200623885COM 개체 관련: 19. COM의 Apartment를 이해해 보자. [8]
386light10/30/200618799    답변글 COM 개체 관련: 19.1. [답변]: COM 객체를 글로벌마샬으로 만든후, 사용한다.
355정성태10/9/200626497개발 환경 구성: 19. Internet_Zone 하위에 새로운 코드 그룹을 추가하는 예제 [4]파일 다운로드2
353정성태12/31/200634784개발 환경 구성: 18. 윈도우즈 인증서 서비스 이야기 [3]
354정성태10/23/200637201    답변글 개발 환경 구성: 18.1. 윈도우즈 인증서 서비스 설치
372정성태12/31/200639143    답변글 개발 환경 구성: 18.2. 웹 사이트에 SSL을 적용 [3]
373정성태10/24/200630398    답변글 개발 환경 구성: 18.3. 사용자 입장에서의 HTTPS 접근 (1)
374정성태10/25/200627991    답변글 개발 환경 구성: 18.4. 사용자 입장에서의 HTTPS 접근 (2)
391정성태11/7/200632091    답변글 개발 환경 구성: 18.5. 사용자 인증서 발급
392정성태11/11/200645117    답변글 개발 환경 구성: 18.6. 인증서 관리 (1) - 내보내기/가져오기
394정성태11/9/200629716    답변글 개발 환경 구성: 18.7. 인증서 관리 (2) - 개인키를 내보낼 수 있는 유형의 인증서 발급 [1]
395정성태11/9/200641707    답변글 개발 환경 구성: 18.8. 인증서 관리 (3) - 인증서 MMC 관리자 사용
414정성태12/23/200633491    답변글 개발 환경 구성: 18.9. CRL(Certificate Revocation List) 관리
428정성태12/31/200646330    답변글 개발 환경 구성: 18.10. IIS 7 - SSL 사이트 설정하는 방법 [4]
429정성태12/31/200632587    답변글 개발 환경 구성: 18.11. 서비스를 위한 인증서 설치
... 181  182  183  184  [185]  186  187  188  189  190  191  192  193  194  195  ...