2012-10-31 1 views
2

현재 여러 개의 이미지 파일을 분석하고 교차하는 멋진 Android 앱을 개발 중입니다. 불행히도 나는 그것에 관한 더 많은 정보를 폭로 할 수 없다.내부 SD 카드 안드로이드 장치에 Errno 24 (열린 파일이 너무 많음) 오류가 발생했습니다.

아무리해도 여러 장치에서 테스트를 해봤지만 임의의 상황에서 너무 많은 열린 파일 조건 (Errno 24)에 도달했습니다. 이것은 내부 SD 카드 (삼성 갤럭시 S3와 같은)가있는 기기에서 발생했습니다. 장치를 뿌리 뽑은 후, sdcard가 별도의 파일 시스템 (FUSE라고하는 가상 파일 시스템)으로 마운트 되었기 때문에 발생하는 문제를 식별 할 수있었습니다. 여기서 내 응용 프로그램에서 연 파일은 시스템 프로세스/system/bin에 의해 실제로 열립니다./sdcard /.

이렇게하면 장치의 모든 프로세스가 1024 파일 디스크립터 인 (SD 카드에있는 파일)으로 제한됩니다. 1024 개의 파일 설명자 제한은 프로세스 당 Android의 최대 열린 파일 수입니다.

예를 들어 10 개의 파일 (데이터베이스 파일, 속성 등)을 각각 열어 설치 한 100 개의 앱이있는 기기를 예로 들면 거의 한계에 도달했습니다. 1024 파일의 한계를 넘으면 장치 전체가 쓸모가 없습니다. 앱이 작동을 멈추는 등등.

★★ 당신은 내가처럼이 열세에 찾을 경우이 개방 문제를 투표 ★★ http://code.google.com/p/android/issues/detail?id=39002

+0

게시물 주셔서 감사합니다. 나는 삼성 갤럭시 넥서스에서 같은 문제를 겪고 있다고 생각한다. 제 경우에는 하나의 응용 프로그램 만 있지만 많은 사진을 순환하고 "epoll 인스턴스를 만들 수 없습니다. errno = 24"라는 두려운 메시지가 나오면 결국 죽습니다. 내가 아는 한 최선을 다해 열린 파일 등을 정리하고 있지만이를 해결할 수는 없습니다. 원인과 가능한 해결책에 대한 더 많은 통찰력을 제공 할 수 있습니까? 감사. – gcl1

+0

안드로이드 엔지니어 Dan Morrill과 내부 SD 카드 장치의 퓨즈 파일 시스템 사용에 관한 좋은 인터뷰가 있습니다. 그것을 확인하십시오 : http : //www.androidpolice.co.kr/2011/11/18/즉시 - 안드로이드 - 엔지니어 - 댄 - morrill - bring-to-light-reasons-behind-galaxy-nexus-usb- 대용량 저장 장치/ 불행히도이 문제에 대한 해결책을 찾지 못했습니다. 내가 열어 놓은 문제가 향후 Android 버전에서 해결 될 수 있기를 바랍니다. – alechko

답변

0

이 확실히 여러 비트 토 런트 클라이언트와 내가 꾸게 문제를 설명 수행을주지하시기 바랍니다. 파일이 다운로드되어 외부 SD 카드에있는 것처럼 보이지만 사용할 수 없으며 다운로드 한 데이터를 강제로 다시 검사하면 누락되거나 손상된 부분이 표시됩니다.

몇 주 동안 나는 급류 떼 (나쁜 동료?), SD 카드 자체 (결함이 있습니까? 앉지 않았습니까?) 또는 KitKat (다소 성가신 새로운 제한 사항과 관련 없음)을 비난했습니다.

모든 토런트 열림은 파일 핸들과 네트워크 소켓을 각 피어와 연결하는 것처럼 보입니다. 10 개의 급류, 각각 10 개의 피어; 문제 없어. 그러나 10 개의 급류가 열리 며, 그 중 일부는 떼가 빠르면 50 명에게 연결될 수 있으며, 가난한 사람의 작은 전화기가 파일 처리 실 천장에 닿았을 것입니다. 그리고 SD 카드로 그 무엇보다도 다른 일을하기 전에! 큰 파일 - - 안드로이드 토런트 클라이언트의

사용자가 자연스럽게 외부 SD 카드 ... 을 사용할 것 별도의 파일 시스템이 나 다른 컴퓨터 에 데이터를 전송하는 HTTP 서버를 사용하여 안전한 느낌 - 리눅스 배포판을 다운로드 SD 카드 슬롯에 바로 넣을 수 있습니다!

제가 고안 한 해결 방법은 활성 토렌트를 기본 저장소에 유지하고 쓰기가 완료되면 SD 카드로 전송하는 것입니다. 이렇게하면 SD 카드에 나타나는 데이터가 손상되는 것을 방지 할 수 있습니다. Flud (Google Play)는 눈에 잘 띄지 않고 안정적이며 완성 된 Torrent를 새로운 위치로 이동할 수있는 옵션이 있습니다.

관련 문제