Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0038524
TypeCategorySeverityReproducibilityDate SubmittedLast Update
design defect[Openbravo ERP] A. Platformmajorhave not tried2018-05-11 13:292018-07-13 11:42
ReporteralostaleView Statuspublic 
Assigned Tojarmendariz 
PrioritynormalResolutionfixedFixed in Version3.0PR18Q4
StatusclosedFix in branchFixed in SCM revisioncf4416b527d9
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Toalostale
Web browser
ModulesCore
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0038524: can't configure timeout for sending emails

DescriptionIt's not possible to configure any timeout for sending emails. In case the email server doesn't respond, it is possible to reach a situation where the thread sending the email is indefinitely stuck.
Steps To Reproduce1. Configure a very slow smtp server
    You can use, ie., a fake smpt server like dumbster [1]
        
           SimpleSmtpServer.start(8025);
        

    and add breakpoints to simulate slowness

2. Configure Client in Openbravo to make use of it
3. Open a completed Sales Order
4. Click on send email
  -> Check the threads gets stuck while the email server is not responding:
"ajp-bio-127.0.0.1-8009-exec-678" daemon prio=10 tid=0x00007fd2800cf800 nid=0x1f7ff runnable [0x00007fd38befb000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:153)
    at java.net.SocketInputStream.read(SocketInputStream.java:122)
    at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
    - locked <0x00000001efd082a0> (a java.io.BufferedInputStream)
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2131)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1912)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
    at javax.mail.Service.connect(Service.java:317)
    - locked <0x00000001efd083f0> (a com.sun.mail.smtp.SMTPTransport)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at org.openbravo.erpCommon.utility.poc.EmailManager.sendEmail(EmailManager.java:170)
    at org.openbravo.erpCommon.utility.reporting.printing.PrintController.sendDocumentEmail(PrintController.java:815)

---
[1] https://github.com/kirviq/dumbster [^]
Proposed Solution* Make it possible to configure email to include timeouts
* Although JavaMail supports up to 3 different timeouts (timeout, connectiontimeout, writetimeout), I think this shouldn't be exposed to end user, a single timeout field should configure (with the same value?) all of them.
* Note current 1.4.4 JavaMail version, released in 2011, only supports connectiontimeout. We might need to upgrade to latest version to do a better support. Attached patch is tested with current latest version (1.6.1) and I found no issues, using gmail as smtp server.
TagsNo tags attached.
Attached Filesdiff file icon 38524-WiP.diff [^] (1,214 bytes) 2018-05-11 13:31 [Show Content]

- Relationships Relation Graph ] Dependency Graph ]
related to defect 0038567 closedalostale Openbravo ERP can get stuck sending emails 
related to defect 0038934 newRetail Retail Modules Emails are no longer sent via POS 

-  Notes
(0105700)
hgbot (developer)
2018-07-11 13:42

Repository: erp/devel/pi
Changeset: cf4416b527d97adba57b97484b66a33284101738
Author: Javier Armendáriz <javier.armendariz <at> openbravo.com>
Date: Mon Jun 25 09:27:44 2018 +0200
URL: http://code.openbravo.com/erp/devel/pi/rev/cf4416b527d97adba57b97484b66a33284101738 [^]

Fixed issue 38524: Cannot configure timeout for sending emails.

In order to fully support timeout for emails the following has been done:
- Updated javax.mail to the latest version to date (1.6.1), which includes
along with socket read timeout, connection and write timeout.
- Added a Smtp server timeout field in Smtp Server configuration tab which
defines the timeout that will be used in seconds.
- Improved EmailManager API by including a cleaner implementation of sendMail
method.

---
M legal/Licensing.txt
M src-db/database/model/tables/C_POC_CONFIGURATION.xml
M src-db/database/sourcedata/AD_COLUMN.xml
M src-db/database/sourcedata/AD_ELEMENT.xml
M src-db/database/sourcedata/AD_FIELD.xml
M src/org/openbravo/email/EmailEventManager.java
M src/org/openbravo/erpCommon/ad_process/AlertProcess.java
M src/org/openbravo/erpCommon/utility/poc/EmailManager.java
M src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
A lib/runtime/javax.mail-1.6.1.jar
A src/org/openbravo/erpCommon/utility/poc/EmailInfo.java
R lib/runtime/mail-1.4.4.jar
---
(0105701)
hgbot (developer)
2018-07-11 13:43

Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: 7e3885eef8d0cae90beb0cb7dca2144213c5bf56
Author: Javier Armendáriz <javier.armendariz <at> openbravo.com>
Date: Wed Jul 11 10:54:21 2018 +0200
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/7e3885eef8d0cae90beb0cb7dca2144213c5bf56 [^]

Related to issue 38524: Can't configure timeout for sending emails.

sendMail method is marked as deprecated. This changeset adds a suppress warning
to the place that uses this method.

---
M src/org/openbravo/retail/posterminal/EmailSender.java
---
(0105703)
jarmendariz (developer)
2018-07-11 17:29

Updated SMTP Server configuration wiki page:
http://wiki.openbravo.com/wiki/Client#Email_Configuration [^]
(0105715)
jarmendariz (developer)
2018-07-12 14:01

Created manual test case in test link:
https://testlink.openbravo.com/testlink/linkto.php?tprojectPrefix=Communit&item=testcase&id=Communit-10929 [^]
(0105737)
alostale (developer)
2018-07-13 11:42

reviewed + tested

- Issue History
Date Modified Username Field Change
2018-05-11 13:29 alostale New Issue
2018-05-11 13:29 alostale Assigned To => platform
2018-05-11 13:29 alostale Modules => Core
2018-05-11 13:29 alostale Triggers an Emergency Pack => No
2018-05-11 13:31 alostale File Added: 38524-WiP.diff
2018-05-17 08:50 alostale Status new => acknowledged
2018-05-17 08:55 alostale Issue cloned 0038567
2018-05-17 08:55 alostale Relationship added related to 0038567
2018-05-17 16:06 alostale Steps to Reproduce Updated View Revisions
2018-06-21 16:26 jarmendariz Assigned To platform => jarmendariz
2018-06-28 12:01 jarmendariz Status acknowledged => scheduled
2018-07-11 10:52 jarmendariz Review Assigned To => alostale
2018-07-11 13:42 hgbot Checkin
2018-07-11 13:42 hgbot Note Added: 0105700
2018-07-11 13:42 hgbot Status scheduled => resolved
2018-07-11 13:42 hgbot Resolution open => fixed
2018-07-11 13:42 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/devel/pi/rev/cf4416b527d97adba57b97484b66a33284101738 [^]
2018-07-11 13:43 hgbot Checkin
2018-07-11 13:43 hgbot Note Added: 0105701
2018-07-11 17:29 jarmendariz Note Added: 0105703
2018-07-12 14:01 jarmendariz Relationship added related to 0038934
2018-07-12 14:01 jarmendariz Note Added: 0105715
2018-07-13 11:42 alostale Note Added: 0105737
2018-07-13 11:42 alostale Status resolved => closed
2018-07-13 11:42 alostale Fixed in Version => 3.0PR18Q4


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker