Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Bug] Emoji triggers PDF-export crash and restarts container (CodiMD 2.6.0) #1932

Open
@AriesyuGTH

Description

Describe the bug

Exporting a note to PDF in CodiMD 2.6.0 crashes PhantomJS whenever the note contains certain emoji characters, which restarts the whole container.

To Reproduce

  1. Create or edit a note.
  2. Insert any emoji (e.g. 😀).
  3. Click Export → PDF.
  4. The request hangs and the container restarts.

Expected behavior

  • A PDF should be generated successfully.
  • The service should remain online.

Actual behavior

  • PDF generation fails.
  • docker logs show PhantomJS crashing with SIGFPE.
  • The CodiMD container restarts automatically.

Environment

Item Value
CodiMD ver. 2.6.0
Deployment docker-compose
Node ver. 16.20.2 (image default)
Base OS Debian Buster
PDF engine markdown-pdf + PhantomJS

docker-compose excerpt (masked)

click to expand
services:
 codimd:
 image: <PRIVATE_REGISTRY>/hackmdio/hackmd:2.6.0
 environment:
 CMD_URL_PATH: codimd
 CMD_DOMAIN: <YOUR_DOMAIN>
 CMD_PROTOCOL_USESSL: "true"
 QT_QPA_PLATFORM: ""
 # Database
 CMD_DB_URL: postgres://codimd:<MASKED_PW>@codimd_db/codimd
 # Misc
 CMD_EMAIL: "false"
 CMD_PLANTUML_SERVER: https://<YOUR_DOMAIN>/plantuml
 CMD_ALLOW_ANONYMOUS: "false"
 CMD_ALLOW_ANONYMOUS_EDITS: "false"
 CMD_CSP_ENABLE: "false"

Logs (full excerpt)

2025年07月09日T06:13:04.445Z info: <MASKED_IP> - - [09/Jul/2025:06:13:04 +0000] "GET /me HTTP/1.1" 304 - "https://<YOUR_DOMAIN>/codimd/ixLMZtInSNiOnrbOkQ-Q_w" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"
2025年07月09日T06:13:06.517Z info: <MASKED_IP> - - [09/Jul/2025:06:13:06 +0000] "GET /uploads/upload_845dbee74d2337302b91fb126a4691db.png HTTP/1.1" 200 32405 "https://<YOUR_DOMAIN>/codimd/ixLMZtInSNiOnrbOkQ-Q_w" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"
2025年07月09日T06:13:20.968Z info: deserializeUser: c35f23dd-2732-46b7-9283-15b14eac234b
2025年07月09日T06:13:21.478Z error: uncaughtException: Command failed: /home/hackmd/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /home/hackmd/app/node_modules/markdown-pdf/phantom/render.js /tmp/tmp-<MASKED>.html /tmp/tmp-<MASKED>.pdf /home/hackmd/app /home/hackmd/app/node_modules/markdown-pdf/runnings.js /home/hackmd/app/node_modules/markdown-pdf/css/pdf.css /home/hackmd/app/node_modules/highlight.js/styles/github-gist.css A4 portrait 2cm 0 10000
PhantomJS has crashed. Please read the bug reporting guide at
<http://phantomjs.org/bug-reporting.html> and file a bug report.
Error: Command failed: /home/hackmd/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /home/hackmd/app/node_modules/markdown-pdf/phantom/render.js /tmp/tmp-<MASKED>.html /tmp/tmp-<MASKED>.pdf /home/hackmd/app /home/hackmd/app/node_modules/markdown-pdf/runnings.js /home/hackmd/app/node_modules/markdown-pdf/css/pdf.css /home/hackmd/app/node_modules/highlight.js/styles/github-gist.css A4 portrait 2cm 0 10000
PhantomJS has crashed. Please read the bug reporting guide at
<http://phantomjs.org/bug-reporting.html> and file a bug report.
 at ChildProcess.exithandler (node:child_process:402:12)
 at ChildProcess.emit (node:events:513:28)
 at maybeClose (node:internal/child_process:1100:16)
 at Socket.<anonymous> (node:internal/child_process:458:11)
 at Socket.emit (node:events:513:28)
 at Pipe.<anonymous> (node:net:301:12)
2025年07月09日T06:13:21.481Z error: Process will exit now.
Info: try to connect to tcp://codimd_db in port 5432
2025年07月09日 06:13:22 portchecker.go:56: dial tcp codimd_db:5432: connect: connection success

Possible cause / context

  • Matches Rendering Emojis hajareshyam/pdf-creator-node#45 — PhantomJS cannot render certain emoji/Unicode glyphs.
  • Removing all emoji lets the export succeed → strong evidence of an encoding issue.
  • PhantomJS is unmaintained; CodiMD relies on it via markdown-pdf.

Potential solutions

  1. Upgrade to CodiMD 3.x (if it has moved to a Chromium/Puppeteer backend).
  2. Replace PhantomJS with Puppeteer/Playwright in a custom build.
  3. Test latest phantomjs-prebuilt patch to confirm whether the crash persists.

Help wanted

  • Can maintainers reproduce this crash with an emoji-containing note?
  • Is there an official plan to migrate away from PhantomJS?
  • Any patch or workaround would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /