I've got a problem with a particular customer account in xtuple. Typing the "bad" customer number into the "Customer #:" line edit control will cause the xtuple client to "hour glass" and freeze until the computer issues an "out of memory" error and then you have to close the client. I can't copy the error message since the computer is pretty non-functional at that point but I did clip the message from tailing the postgres error log (pg 9.6). Here is the error::
2019-10-01 13:15:29 CDT admin fppprod 172.20.0.78 - LOG: duration: 181987.350 ms statement: SELECT cust., addr_line1 AS description, addr_id, addr_active, addr_line1, addr_line2, addr_line3, addr_city, addr_state, addr_postalcode, addr_country, addr_notes, addr_number, cntct_id, cntct_addr_id, cntct_first_name, cntct_last_name, cntct_honorific, cntct_initials, cntct_active, getcontactphone(cntct_id, 'Office') AS cntct_phone, getcontactphone(cntct_id, 'Mobile') AS cntct_phone2, getcontactphone(cntct_id, 'Fax') AS cntct_fax, cntct_email, cntct_webaddr, cntct_notes, cntct_title, cntct_number, cntct_middle, cntct_suffix, cntct_owner_username, cntct_name, formatAddr(addr_line1, addr_line2, addr_line3, '', '') AS street FROM ( SELECT cust_id AS id, cust_number AS number, cust_name AS name, cust_active AS active, cust_creditstatus, crmacct_id, true AS iscustomer, cust_cntct_id FROM custinfo JOIN crmacct ON cust_crmacct_id = crmacct_id WHERE NULL IS NULL or cust_number ~ UPPER(NULL) UNION ALL SELECT prospect_id AS id, prospect_number AS number, prospect_name AS name, prospect_active AS active, 'G' AS cust_creditstatus, crmacct_id, false AS iscustomer, getcrmaccountcontact(prospect_crmacct_id) AS cust_cntct_id FROM prospect LEFT OUTER JOIN crmacct ON prospect_crmacct_id = crmacct_id WHERE NULL IS NULL or prospect_number ~* UPPER(NULL) ) cust LEFT OUTER JOIN cntct ON cust_cntct_id = cntct_id LEFT OUTER JOIN addr ON cntct_addr_id = addr_id WHERE true AND (id=6752) ;
I'm pretty certain the SQL is coming from the "custCluster.cpp" file. I wonder if the "WHERE NULL IS NULL or cust_number ~* UPPER(NULL)" is causing the process to return ALL records. I'm just trying to keep my customer running so I don't have time to dig in much deeper.
Any ideas or suggestions? Other customers work ok but so far we've identified a couple that create this crash.