Development/Daily Error

일간에러 2022-01-04 iRODS:-24000

📝 작성 : 2022.01.06  ⏱ 수정 : 
반응형

iRods

The Integrated Rule-Oriented Data System

image-20220106221828969

https://irods.org/

아마 대부분 처음 들어보셨을 거라 생각해 간단한 설명을 붙여보려 합니다.

iRODS는 전세계의 연구, 기업, 정부기관등이 사용하는 오픈소스 데이터 관리 소프트 웨어 입니다. mission critical 한 환경에서의 production 레벨을 목표로 릴리즈 되었으며, 데이터 저장소 리소스를 가상화하기 때문에 사용자가 데이터가저장된 디바이스와 상관 없이 데이터를 다룰 수 있게 해 줍니다.

사실 한국어로 된 레퍼런스는 논문 한두개를 제외하면 전무하기 때문에 영어로 자료를 검색 해야 하는데, 그마저도 잘 정리된 도큐먼트가 없기 때문에 정보를 얻으려면 주로 Github에 올라온 issue들을 참고하거나 iRODS 를 사용하는 개발자들의 모임인 iRODS-Chat에 들어오는 방법 밖에 없습니다.

image-20220106223703582

https://groups.google.com/g/irod-chat

그래도 4500여개의 채팅 내역에 도움이 되는 정보가 많기 때문에 검색을 잘 하면 해결되는 문제도 꽤나 많습니다. 여기에 검색해서 나오는 정보들은 google에 검색했을때 절대 나오지 않습니다.

image-20220106224227435

심지어 iRods를 사용하기 위한 java 라이브러리인 jargon의 경우에는 2018년 이후로는 실질적인 업데이트가 끊겼다보니 사용하다 난감한 상황도 자주 연출이 됩니다.

image-20220106224318853

https://github.com/DICE-UNC/jargon/pull/395

때문에 제가 사용하다 버그를 발견해 입사한지 막 한달이 됐을 무렵인 9월 초에 Pull request를 올려 두었지만 유지보수가 이뤄지지 않고 있어 4개월째 방치되고 있습니다. PR을 안받아줘도 버그를 고쳐 사용은 해야 하다 보니 Fork 해서 사용 하고 있습니다.

iRODS에 대한 설명은 이정도로만 마치겠습니다.

에러 iRODS:-24000

그런데 iRODS를 사용해 파일을 업로드 하는 과정에 문제가 발생했습니다.

java.lang.RuntimeException: java.io.IOException: org.irods.jargon.core.exception.JargonException: error code received from iRODS:-24000

많은 검색을 거쳐 -24000이라는 에러 코드가 SYS_INTERNAL_NULL_INPUT_ERR 라는걸 알아냈습니다. 에러 코드 표가 있으면 이정도로 고생을 하진 않을텐데.. 에러 코드에 대한 내용도 검색하기가 참 힘든게 속상할 때가 많습니다.

원인

iRODS가 파일을 생성 하고, 그 파일에 업로드 할 데이터를 저장 해야 하는데, 파일 저장에 실패 한 것으로 보입니다. iRods를 docker 에 띄우고

volume 옵션으로 데이터 저장 폴더를 마운트해 사용하고 있었는데, 거기에 파일을 저장하는데 문제가 발생한 듯 합니다. 그래서 해당 폴더를 확인해보니 root 권한으로 생성되어 있었습니다. root 권한이 필요한 경로에 폴더를 생성하다 보니 sudo mkdir 로 생성을 했었는데, 그러다 보니 소유자가 root가 되어서 iRODS가 해당 경로에 파일을 생성하지 못하며 오류를 내고 있었습니다.

해결

로컬에서 chown으로 마운트하는 폴더의 소유자를 변경하니 바로 문제가 해결 되었습니다.

이상입니다.

반응형