Symptoms

CheckMailCollectors task (MailCollecting event) fails with an error:

Execution Failed: [../../../../usr/local/stellart/include/stlrt/type/binary.hpp:32] operation with NULL binary value
Backtrace:
/usr/local/stellart/lib/libstlrt.so [0xb7c130be]
/usr/local/stellart/lib/libstlrt.so(_ZN9ExceptionC2EPKciS1_ii+0x9e) [0xb7c13e62]
/usr/local/stellart/lib/libstlrt.so(_ZN5STLRT4Type9ExceptionC1EPKciRKN9Exception4CodeE+0x30) [0xb7c29730]
/usr/local/bm/lib/libAMAILlib.so(_ZNK5STLRT4Type6Binary4dataEv+0x4e) [0xb7fbcaa6]
/usr/local/bm/lib/libAMAILlib.so(_ZNK5STLRT4Type6Binary8asStringI3StrEET_v+0x31) [0xb7fbd3d9]
/usr/local/bm/lib/libAMAILlib.so(_ZN5AMAIL19CheckMailCollectorsEv+0x34c) [0xb7fb2764]
/usr/local/bm/bin/AMAIL_Container(_ZN18srvAMAIL_ObjectRPC21__CheckMailCollectorsEP12ErrorManagerR10DataPacketRK7Address+0x26) [0x8059612]
/usr/local/stellart/lib/libMW.so(_ZN12ErrorManager3RPCEP12ServerObjectR10DataPacketRK7Address+0x14b) [0xb7a49507]
/usr/local/stellart/lib/libCOM.so(_ZNK13MethodHandlerclER10DataPacketRK7Address+0x1d) [0xb7b12773]
/usr/local/stellart/lib/libCOM.so(_ZN12ServerObject16UnsafeMethodCallER12RemotePacketb+0x84e) [0xb7b0d934]
/usr/local/stellart/lib/libCOM.so(_ZN17TransactionServer16UnsafeMethodCallER12RemotePacketb+0x41) [0xb7af2721]
/usr/local/stellart/lib/libCOM.so(_ZN12ServerObject17ProcessMethodCallER12RemotePacket+0x4e) [0xb7b0c104]
/usr/local/stellart/lib/libCOM.so(_ZN12ServerObject14ProcessMessageER12RemotePacket+0xc3) [0xb7b0c0ad]
/usr/local/stellart/lib/libCOM.so(_ZN17TransactionServer14ProcessMessageER12RemotePacket+0x546) [0xb7af25ba]
/usr/local/stellart/lib/libCOM.so(_ZN10CommObject21processPacketUnsafelyER12RemotePacket+0xe3) [0xb7b09ff1]
/usr/local/stellart/lib/libCOM.so(_ZN10CommObject13processPacketER12RemotePacket+0x45) [0xb7b08faf]
/usr/local/stellart/lib/libCOM.so(_ZN17TransactionServer11packetCycleEv+0x472) [0xb7af1a76]
/usr/local/stellart/lib/libCOM.so(_ZN10CommObject6GoWorkEv+0xcc) [0xb7b08dcc]
/usr/local/stellart/lib/libMW.so(_ZN12ErrorManager6GoWorkEv+0x2f) [0xb7a48433]
/usr/local/stellart/lib/libstlrt.so(_ZN7AThread3runEPS_+0xd6) [0xb7bd4dd6]
/lib/tls/libpthread.so.0 [0xb7cef5cc]
/lib/tls/libc.so.6(__clone+0x5e) [0xb77a935e]

Cause

There is an entry in the database that has an empty value (NULL) in the column that should not be empty.

One of the possible causes is an empty value for one of the email placeholders. For example, an account of type business does not have administrative e-mail filled (possible if an account was incorrectly created with API) but this e-mail address is used as one of adresants of some notification (e.g. there are @@Cust_Account_BillingContact_Email@ and @@Cust_Account_AdminContact_Email@ in "To Address" of the notification template).

Resolution

  1. The mail ID can be found in the AMAIL.log on the method execution:

    [13-09-21 00:52:48.617 Worker1.3   TH03626 NTE] Entering method AMAIL_Container::Worker1.3.CheckMailCollectors(user = -1, transaction = 2797706, SID = 0, lang = en, LP)
    [13-09-21 00:52:48.617 Worker1.3   TH03626 NTE]         1 input arguments :
                    string: NULL
    
    [13-09-21 00:52:48.618 AMAIL       TH03626 NTE] Exclusively locking a row (MailID=123123123) in table MailMsg
    [13-09-21 00:52:48.621 Worker1.3   TH03626 NTE] Finished method AMAIL_Container::Worker1.3.CheckMailCollectors(user = -1, transaction = 2797706, SID
     = 0, lang = en, LP)
    [13-09-21 00:52:48.621 Worker1.3   TH03626 NTE] ErrorManager::Complete: Rollback 2 - exception handled.
    [13-09-21 00:52:48.621 Worker1.3   TH03626 NTE] ROLLBACK of transaction = 2797706
    [13-09-21 00:52:48.622 ADict       TH03626 NTE] Language::get("[../../../../usr/local/stellart/include/stlrt/type/binary.hpp:32] operation with NULL binary value
    Backtrace:
    /usr/local/stellart/lib/libstlrt.so [0xb7b780be]
    /usr/local/stellart/lib/libstlrt.so(_ZN9ExceptionC2EPKciS1_ii+0x9e) [0xb7b78e62]
    

    In this example there is an issue with the message MailID=123123123

  2. Remove this message:

    Home Configuration Director Mail Log Outgoing E-Mail Log

    search message with ID 123123123 > Mark > Delete

    If it is not possible to remove the message from the control panel, please contact Parallels Technical Support Team for assistance.

  3. Resubmit a failed event.

  4. To avoid an issue from reoccurring fill in the necessary account data.

This problem (the fact that such empty email breaks execution of CheckMailCollectors method and that 1 wrong email breasks whole method and blocks processing of other mail messages) was completely fixed in PBA-E 5.5.5 in scope of fixing the following bugs:

PBA-54497

Issue Summary: Invalid e-mail message may block all PBA mail processing.

Fix Description: Now PBA mail processing will not be blocked by invalid e-mail messages.

PBA-54496

Issue Summary:It is possible to force PBA to generate an empty notification and break e-mail processing.

Fix Description: Now PBA will not generate empty notifications.

For more details you can refer to the release notes.

Internal content

Link on internal Article