Wicked PDF silently fails on OS X

4

With the same code and gem versions, it works just fine in Ubuntu (14.04, 64bit). Currently I am using:

  • wkhtmltopdf-binary gem v0.9.9.1
  • wicked_pdf gem v0.10.2
  • Rails 4.1.1
  • Ruby 2.1.3
  • OS X 10.10, 64-bit

When I tried to generate PDF from Rails, i get the error message: wkhtmltopdf_darwin_386 quit unexpectedly. Here's the full error message:

Process:               wkhtmltopdf_darwin_386 [1208]
Path:                  /Users/USER/*/wkhtmltopdf_darwin_386
Identifier:            wkhtmltopdf_darwin_386
Version:               ???
Code Type:             X86 (Native)
Parent Process:        ruby [1207]
Responsible:           Terminal [560]
User ID:               502

Date/Time:             2014-11-18 13:57:49.082 +0700
OS Version:            Mac OS X 10.10 (14A389)
Report Version:        11
Anonymous UUID:        FE32CAE5-D54C-30C5-5D5E-6B3F12C58027

Sleep/Wake UUID:       83991D0B-AAA7-4EE0-8FF7-5034B78B788F

Time Awake Since Boot: 8000 seconds
Time Since Wake:       1100 seconds

Crashed Thread:        Unknown

Exception Type:        EXC_BAD_ACCESS (SIGBUS)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x0000000000000001

Backtrace not available

Unknown thread crashed with X86 Thread State (32-bit):
  eax: 0x015382c8  ebx: 0x00d8c971  ecx: 0x00000001  edx: 0x00000000
  edi: 0x00000000  esi: 0x015382b4  ebp: 0xbfff6428  esp: 0xbfff6040
   ss: 0x00000023  efl: 0x00010246  eip: 0x00d8e3c2   cs: 0x0000001b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000000   gs: 0x0000000f
  cr2: 0x00000001

Logical CPU:     3
Error Code:      0x00000004
Trap Number:     14


Binary images description not available


External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 1
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 3109
    thread_create: 0
    thread_set_state: 0

The reason why I said silently in the title, is because when I inspected the server log it's running just fine. Here's an excerpt:

"***************\"/Users/david/.rbenv/versions/2.1.3/bin/wkhtmltopdf\" -q  --footer-html \"file:////var/folders/4w/fybp8mln1pn91cqrxq6z2kcc0000gp/T/wicked_footer_pdf20141118-1102-1uce4hg.html\"     --margin-bottom 13    \"file:////var/folders/4w/fybp8mln1pn91cqrxq6z2kcc0000gp/T/wicked_pdf20141118-1102-1jrv3s8.html\" \"/var/folders/4w/fybp8mln1pn91cqrxq6z2kcc0000gp/T/wicked_pdf_generated_file20141118-1102-qu51nc.pdf\" ***************"
  Rendered text template (1.1ms)
Sent data test.pdf (8.4ms)
Completed 200 OK in 6516ms (Views: 7.5ms | ActiveRecord: 6.8ms)

Running which wkhtmltopdf gives me /Users/david/.rbenv/shims/wkhtmltopdf.. When I ran tested wkhtmltopdf separately (as in wkhtmltopdf test1.html test1.pdf) it runs perfectly.

Is it possible that wkhtmltopdf_darwin_386 doesn't work well in 64-bit based architecture? (Even though my Ubuntu is also 64-bit based.)

Any help is appreciated.

ruby-on-rails
macos
wicked-pdf
asked on Stack Overflow Nov 18, 2014 by dvdchr • edited Nov 18, 2014 by dvdchr

1 Answer

1

Have you done this? :

create/edit file:

config/initializers/wicked_pdf.rb

If your wkhtmltopdf executable is not on your webserver's path, you can configure it in an initializer:

WickedPdf.config = {
  :exe_path => '/Users/USER/*/wkhtmltopdf_darwin_386'
}

soure

answered on Stack Overflow Nov 18, 2014 by AME

User contributions licensed under CC BY-SA 3.0