Development/Daily Error 9

일간에러 2022-01-11 remaining connection slots are reserved for non-replication superuser connections

Postgres 에러 증상 remaining connection slots are reserved for non-replication superuser connections 커넥션이 충분히 있는데도 커넥션을 얻지 못함. iRods에서도 커넥션을 얻지 못하니 파일 업로드를 하다가 빈번히 Connection reset이 되어 버림 원인 커넥션이 말라버려서 더이상 제공할 커넥션이 없음. 해결 보통은 커넥션 수를 늘리는 방법으로 해결하는 경우가 많은데 max_connections 를 먼저 확인 해 본다. select * from pg_settings where name='max_connections'; max_connections가 100으로 세팅 되어 있는데, 이 경우에는 운영중인 서버도 아니고..

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

iRods The Integrated Rule-Oriented Data System https://irods.org/ 아마 대부분 처음 들어보셨을 거라 생각해 간단한 설명을 붙여보려 합니다. iRODS는 전세계의 연구, 기업, 정부기관등이 사용하는 오픈소스 데이터 관리 소프트 웨어 입니다. mission critical 한 환경에서의 production 레벨을 목표로 릴리즈 되었으며, 데이터 저장소 리소스를 가상화하기 때문에 사용자가 데이터가저장된 디바이스와 상관 없이 데이터를 다룰 수 있게 해 줍니다. 사실 한국어로 된 레퍼런스는 논문 한두개를 제외하면 전무하기 때문에 영어로 자료를 검색 해야 하는데, 그마저도 잘 정리된 도큐먼트가 없기 때문에 정보를 얻으려면 주로 Github에 올라온 issue들을 ..

일간에러 2021-12-29

'append' called on an object that does not implement interface FormData. 문제 jQuery Ajax와 FormData를 이용해 파일을 비동기로 업로드 하던 중 해당 아래와 같은 에러 발생 'append' called on an object that does not implement interface FormData 코드는 다음과 같다. $('#migration_form').on('submit', function () { var formdata = new FormData(); const file = $('#input_file')[0].files[0]; formdata.append..

일간에러 2021-12-22 파일 다운로드시 한글 파일명 처리

문제 드디어 파일 업로드 모듈을 성공적으로 붙여서 테스트를 마치고 운영 서버에 반영을 해 보았다. 파일이 업로드도 잘되고, 업로드 한 파일을 다운로드도 잘 하고. 문제가 전혀 없는 듯 보였는데.. 하필(?) 샘플 코드로 받았던 jsp파일을 한글 파일명 테스트 겸사 해본다고 한글파일.jsp로 파일명을 바꿔서 업로드를 하니 업로드에는 문제가 없었는데 다운로드 할 때 404 에러가 발생했다. 정말 다 끝났다고 생각 했고, 같은 파일의 업로드가 개발 환경에서는 아무 문제가 없었기 때문에 굉장히 골치가 아파지던 상황. 원인 정말 신기한건 다른 한글 파일명에도 문제가 없었고, 심지어 확장자를 조금 변경해 한글파일.jyp 로 바꿔도 아무 문제 없이 작동했다. 또 어떤 다른 확장자가 들어갔을 때 같은 에러가 터질지 몰..

일간에러 2021-12-21 파일 업로드시 파일명 깨짐

오류 파일 업로드&다운로드 처리를 위한 모듈을 중간에 연결해 파일 업로드를 구현하던 중. 파일명이 영문이나 심지어 일본어로 되어 있어도 정상적으로 업로드 처리가 되었는데, 한글만 있으면 파일명이 깨지는 문제가 발생했다. 단순히 파일명만 깨지는 선에서 끝난다면 파일 명을 어딘가 기록 해 두고 어떻게든 우회하는 방법으로 처리 할 수 있겠지만, 문제는 위에 보이는 것 처럼 _start_offset 과 _end_offset을 기록하며 innorix 모듈이 파일을 쪼개서 전송하는 것 이었다. 파일 업로드가 한 요청으로 끝나는게 아니고 클라이언트 쪽에 설치된 이로릭스 클라이언트를 통해 브라우저 -> innorix(port:4033) -> 서버 과정으로 요청이 여러개로 쪼개져 전달되며 업로드 상태도 계속해서 업데이트..

일간에러 2021-12-20 Corrupt form data: premature ending

오류 innorix 파일 업로드 모듈을 진행중인 프로젝트에 붙이는 과정에 컨트롤러에서 다음과 같은 에러가 발생했다. Corrupt form data: premature ending 샘플 코드를 WAS에 단독으로 올려서 테스트 해봤을 때에는 문제없이 작동 되는걸 확인 했는데, 스프링 부트 프로젝트에서 모듈을 붙이려니 자꾸 에러가 발생했다. 심지어는 샘플 코드를 그대로 붙여 넣어 테스트 해보아도 같은 에러가 발생했다. 번역을 그대로 해 보면, 데이터가 손상되었고 조기에 종료 되었다는 내용이다. 원인 에러가 나는 코드를 타고 들어가보니, MultipartRequest를 모듈 내부에서 readNextPart() 돌리며 스스로 처리 하고 있었다. 스프링에서 익숙 하게 사용 하는 List files 방식을 사용는게..

일간에러 2021-12-01 createPopper is not a function

에러 s.createPopper is not a function라는 에러가 나오며 부트스트랩 드랍박스가 의도한 대로 작동하지 않았습니다. 혹시나 싶어 Bootstrap 공식 document의 엘리먼트 구조를 그대로 넣어도 봤지만, 여전히 작동하지 않았습니다. 원인 bootstrap.bundle.min.js 파일이 Popper를 포함하고 있다고 써 있습니다. Popper 라이브러리를 불러오지 않았기 때문에 에러 발생한 것 입니다. 해결 bootstrap.bundle.min.js 파일을 다운받아 추가합니다. 혹은 cdn으로 추가해도 무방합니다. 물론, Bootstrap 버전은 사용중인 버전을 찾아야 합니다. https://getbootstrap.com/docs/5.1/getting-started/downlo..

일간 에러 2021-11-19

I cannot be cast to java.lang.Integer 문제 JPA Restrictions의 in 절 파라미터에 int 배열을 전달 했더니, 쿼리를 만들어 내지 못하며 I cannot be cast to java.lang.Integer 에러가 발생했다. int[] actions = { Constants.READ, Constants.ADMIN, Constants.SUBMIT, Constants.REVIEW,Constants.WORKFLOW } Restrictions.in("actionId", actions))); 해결 과정 혹시 쿼리에는 String만 들어가야 하나 해서 Parameter를 String 배열로 변환 해 전달 해 보았다. Arrays.stream(collectionMembers)..

일간 에러 2021-11-12

save(object) 메서드 먹통 문제 dao.save(object)를 아무리 호출해도 저장이 되지 않아 테스트 케이스를 통과 하지 못하던 에러. 저장만 안되고, 기존에 이미 있던 DB를 조회 하거나 수정 하는데는 문제가 없어서 당황스러웠다. 원인 Spring Data JPA를 사용할때는 save 메서드를 당연하게 사용했는데, 이번에는 다중 쓰레드에서의 DB 커넥션을 관리해줘야 하는 상황이다 보니, Hibernate가 제공하는게 아닌 다른 구현체를 상속해서 데이터 접근 객체를 만들어 사용하고 있었다. 하다 하다 안되어서 메서드 목록을 보니 create 메서드가 따로 있기에, 그럼 save와 어떤 식으로 차이가 있는지 살펴보려고 코드를 타고 들어가니.. public abstract class Abstra..