haraka / Haraka

A fast, highly extensible, and event driven SMTP server
https://haraka.github.io
MIT License
5.02k stars 662 forks source link

Error on command QUIT #1235

Closed DarkSorrow closed 8 years ago

DarkSorrow commented 8 years ago

Hello,

I have an Haraka server that is handling bounce email and for some of them i keep getting a "cmd_quit failed: Error: We are already running hooks! Fatal error!". Here is the log for one of these error

[NOTICE] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] message mid="<20151029085511.6EF0E4E0001@xxxxxx>" size=21726 rcpts=1/0/0 delay=0.051 code=CONT msg=""
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running queue hooks
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running queue hook in queue/discard plugin
[INFO] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [queue/discard] discarding message
[INFO] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] hook=queue plugin=queue/discard function=discard params="" retval=OK msg=""
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running queue_ok hooks
[NOTICE] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] queue code=OK msg="Message Queued (11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1)"
[PROTOCOL] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] S: 250 Message Queued (11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1)
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running reset_transaction hooks
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running reset_transaction hook in mb_log plugin
[PROTOCOL] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] C: QUIT state=1
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running quit hooks
[ERROR] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] cmd_quit failed: Error: We are already running hooks! Fatal error!
[ERROR] [-] [core] undefinedError: We are already running hooks! Fatal error!0[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)1[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)2[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.process_line (/data/src/Haraka/connection.js:278:29)3[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection._process_data (/data/src/Haraka/connection.js:422:18)4[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.respond (/data/src/Haraka/connection.js:515:10)5[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)6[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at callback (/data/src/Haraka/plugins.js:355:35)7[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)8[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)9[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)10[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at callback (/data/src/Haraka/plugins.js:355:35)11[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)12[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)13[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)14[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)15[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[ERROR] [-] [core] undefined    at callback (/data/src/Haraka/plugins.js:355:35)16[ 'Error: We are already running hooks! Fatal error!',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:280:15)',
  '    at Connection.cmd_quit (/data/src/Haraka/connection.js:1191:13)',
  '    at Connection.process_line (/data/src/Haraka/connection.js:278:29)',
  '    at Connection._process_data (/data/src/Haraka/connection.js:422:18)',
  '    at Connection.respond (/data/src/Haraka/connection.js:515:10)',
  '    at Connection.queue_ok_respond (/data/src/Haraka/connection.js:1759:10)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:359:45)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.queue_respond (/data/src/Haraka/connection.js:1717:21)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)',
  '    at Plugin.exports.discard (/data/src/Haraka/plugins/queue/discard.js:15:16)',
  '    at Object.plugins.run_next_hook (/data/src/Haraka/plugins.js:382:28)',
  '    at Object.plugins.run_hooks (/data/src/Haraka/plugins.js:298:13)',
  '    at Connection.data_post_respond (/data/src/Haraka/connection.js:1592:25)',
  '    at callback (/data/src/Haraka/plugins.js:355:35)' ]
[PROTOCOL] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] S: 421 Internal Server Error
[DEBUG] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] running disconnect hooks
[NOTICE] [11B9DB17-6C80-4EBE-BD1B-3E0789DF04E8.1] [core] disconnect ip=xxxxxxx rdns="xxxxx" helo="xxxxxxxx" relay=N early=N esmtp=Y tls=N pipe=N errors=0 txns=1 rcpts=1/0/0 msgs=1/0/0 bytes=21726 lr="421 Internal Server Error" time=0.606

My code in the reset_transaction called in that file is as follow.

exports.error_flowactivity = function (next, connection) {
    if (!connection.transaction.notes.cass_insert || !connection.transaction.notes.is_error) { return next(); }
    var flow_date = new Date();
    var flow_time = flow_date.getUTCFullYear() + '-' + String('0'+(flow_date.getUTCMonth()+1)).slice(-2) +  '-' + String('0'+flow_date.getUTCDate()).slice(-2) + 'T' + String('0'+flow_date.getUTCHours()).slice(-2) + ':00:00.000Z';
    server.notes.redis.sadd(flow_time, connection.transaction.notes.account_id+':'+connection.transaction.notes.domain_name, function(err_flow, flow_res) {
        if  (err_flow) {
            connection.logcrit(' Log domain for regulation'+err_flow);
        }
        return next();
    });
}

exports.check_notification = function (next, connection) {
    if (!connection.transaction.notes.cass_insert) { return next(); }
    if (connection.transaction.notes.contacts_updatehistory === 'true') {
        var notif_key = 'mbnot_'+connection.transaction.notes.account_id+'_'+connection.transaction.notes.domain_name;
        server.notes.redis.set(notif_key, 'flag', 'NX', 'EX', 300, function(err1, spool_flag) {
            if (err1) { connection.loginfo(' Redis multi notif'+err1); }
            if (spool_flag) { // If the result send OK it means the variable was just created, so we start a check
                var payload = beans_util.notify_history(connection);
                server.notes.beanstalk_connection[server.notes.beans_idx].put(10, 300, 0, payload, function(err2, jobid) {
                    if (err2) { connection.logcrit(' Redis multi notif'+err2); }
                    return next();
                });
            } else {
                return next();
            }
        });
    } else {
        return next();
    }
}

exports.eval_transaction = function (next, connection) {
    if (!connection.transaction.notes.cass_insert) { return next(); }
    var txn = connection.transaction.notes;
    if (connection.transaction.notes.to_repair) {
        var query = 'INSERT INTO RMail (account_id, bounce_date, insert_deny, deny_ttl) VALUES (?,?,?,?,?);';
        server.notes.db_conn.execute(query, [txn.account_id, connection.transaction.notes.timeuuid, connection.transaction.notes.insert_deny, connection.transaction.notes.contacts_excludesoft], {prepare: true, consistency: server.notes.c_type.consistencies.localQuorum}, function (err) {
            if (err) {
                connection.logcrit(err);
            }
            return next();
        });
    } else {
        return next();
    }
}

I think the problem is that the client is sending a quit command after we send him the messaged queue. If you have some suggestion on how to stop this error i can maybe implement it, i was thinking it was due to the fact that the reset_transaction is being checked in one of the files, but i'm not sure if it would be correct to add a flag in that case. This error just appear sometime and not for every call this is why i think its probably because of some of the bounce server that aren't giving a good answer

smfreegard commented 8 years ago

@DarkSorrow - just seen this. Can you try this and see if it fixes the problem for you

--- connection.js.old   2016-01-16 05:38:36.279506853 -0500
+++ connection.js   2016-01-16 05:35:15.802852238 -0500
@@ -572,6 +572,8 @@

 Connection.prototype.reset_transaction = function(cb) {
     if (this.transaction && this.transaction.resetting === false) {
+        // Pause everything to allow this hook to complete
+        this.pause();
         this.transaction.resetting = true;
         plugins.run_hooks('reset_transaction', this, cb);
     }
@@ -587,6 +589,7 @@
         this.transaction = null;
     }
     if (cb) cb();
+    this.resume();
 };

 Connection.prototype.init_transaction = function(cb) {
smfreegard commented 8 years ago

Just tested this change with this dummy plugin:

exports.hook_reset_transaction = function (next, connection) {
    setTimeout(function () {
        return next();
    }, 10 * 1000);
}

It works as expected for me.