OpenSource/Redmine

pdf 내보내기 오류 해결

난쓰넌말 2024. 11. 5. 19:06

레드마인 업그레이드 (4.1.0 -> 5.0.3) 업그레이드 이후 대체로 잘 동작했으나 특정 wiki만 pdf변환시 오류 발생하여 조치한 내용 정리

문제상황

productoin 로그

E, [2024-11-01T15:08:40.160360 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] pdf: Image: error: RBPDF error: Unable to get image width and height: E:\Redmine_db\files/2024/11/241101142022_2fa4.png
E, [2024-11-01T15:08:40.218864 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] pdf: writeHTML: NaN
E, [2024-11-01T15:08:40.219320 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] C:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rbpdf-1.20.1/lib/rbpdf.rb:9163:in `round'
E, [2024-11-01T15:08:40.219460 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] C:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rbpdf-1.20.1/lib/rbpdf.rb:9163:in `outellipticalarc'

--- 중략

E, [2024-11-01T15:08:40.224696 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] C:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/actionpack-6.1.7/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
E, [2024-11-01T15:08:40.224790 #7572] ERROR -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] C:/Bitnami/redmine-5.0.3-

--- 중략

112.1ms | Allocations: 69454)
I, [2024-11-01T15:08:40.233826 #7572]  INFO -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] Completed 500 Internal Server Error in 126ms (ActiveRecord: 5.1ms | Allocations: 73190)
F, [2024-11-01T15:08:40.234995 #7572] FATAL -- : [dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3]   
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] ActionView::Template::Error (RBPDF error: writeHTMLCell Error.):
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3]     1: <%= raw wiki_page_to_pdf(@page, @project) %>
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3]   
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] lib/redmine/export/pdf.rb:95:in `RDMwriteFormattedCell'
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] lib/redmine/export/pdf/wiki_pdf_helper.rb:84:in `write_wiki_page'
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] lib/redmine/export/pdf/wiki_pdf_helper.rb:58:in `wiki_page_to_pdf'
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] app/views/wiki/show.pdf.erb:1
[dd157ae6-28af-4a21-a8ac-1d2d0ffe66d3] lib/redmine/sudo_mode.rb:61:in `sudo_mode'

로그 분석

  • RBPDF 라이브러리 문제가 있는듯.
    • ActionView::Template::Error (RBPDF error: writeHTMLCell Error.):
  • pdf: Image: error: RBPDF error: Unable to get image width and height: E:\Redmine_db\files/2024/11/241101142022_2fa4.png
    • 이 파일은 정상적으로 서버에 올라갔고, 다운받을 수 있어
  • RBPDF 관련 현재 버전 확인
    • Gemfile 및 Gemfile.lock 에서 확인
    • rbpdf (1.20.1), rbpdf-font (1.19.1)
    • 위 로그에서도 "gems/rbpdf-1.20.1" 라고 함.

관련 검색

해결

  1. Gemfile.lock 업데이트
    • bundle update rbpdf rbpdf-font
  2. 의존성 재설치
    • bundle install
  3. rbpdf 버전 명시
    • Gemfile에 rbpdf 관련 최신 버전으로 변경
    • gem 'rbpdf', '~> 1.21.3' (기존1.20.1에서)
    • gem 'rbpdf-font', '~> 1.19.1' (기존 동일)
  4. bundle install 실행
  5. 캐시 삭제
    • bundle clean --force
  6. bundle install 실행
  7. tmp 폴더 정리 (필요시,,)
    • rake tmp:clear