wodSmtp.dll and DrWtsn32 - WeOnlyDo Discussion board

wodSmtp.dll and DrWtsn32 (General questions)

by Chris Demmings, Thursday, September 04, 2008, 22:50 (5923 days ago)

Hi,

We have an eMail server used in our application for sending bulk messages to students from the district.

We are having a problem where the application aborts every couple of days. I have captured the Dr. Watson output and was wondering if you have any ideas what we might check.

The application is sending hundreds of emails a day and works well most of the time.

The wodSmtp.dll version is 1.3.6.65

Dr. Watson
----------------------------------------------
*----> State Dump for Thread Id 0x175c <----*

eax=0012f2d0 ebx=00000000 ecx=00000000 edx=00950608 esi=0095c440 edi=0270e1a0
eip=78002faf esp=0012f2c0 ebp=0012f2ec iopl=0 nv up ei pl zr na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

*** ERROR: Symbol file could not be found. Defaulted to export symbols for D:PROGRA~1SVSCHOOLCOMMONWODSMTP.DLL -
function: WODSMTP
78002f9c 46 inc esi
78002f9d 048b add al,0x8b
78002f9f 4c dec esp
78002fa0 240c and al,0xc
78002fa2 03460c add eax,[esi+0xc]
78002fa5 8901 mov [ecx],eax
78002fa7 017e0c add [esi+0xc],edi
78002faa 5f pop edi
78002fab 5e pop esi
78002fac c20800 ret 0x8
FAULT ->78002faf 8b410c mov eax,[ecx+0xc] ds:0023:0000000c=????????
78002fb2 2b4108 sub eax,[ecx+0x8]
78002fb5 c3 ret
78002fb6 56 push esi
78002fb7 8bf1 mov esi,ecx
78002fb9 57 push edi
78002fba 8b7c2410 mov edi,[esp+0x10]
78002fbe 8b4608 mov eax,[esi+0x8]
78002fc1 8b4e0c mov ecx,[esi+0xc]
78002fc4 2bc8 sub ecx,eax
78002fc6 3bf9 cmp edi,ecx

*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr Args to Child
0012f2ec 78015d18 026ed018 026f3fe0 a49200e0 WODSMTP+0x2faf
0012f410 780034bc 026ed018 00000162 04d10488 WODSMTP+0x15d18
026fc144 026ed018 0000000f 0000000f 00000000 WODSMTP+0x34bc
00001000 00000000 00000000 00000000 00000000 0x26ed018

*----> Raw Stack Dump <----*
000000000012f2c0 e7 5e 01 78 00 00 00 00 - 40 c4 95 00 00 00 00 00 .^.x....@.......
000000000012f2d0 00 10 00 00 08 b0 6e 02 - 00 00 00 00 00 00 00 00 ......n.........
000000000012f2e0 04 f4 12 00 bc 88 06 78 - 00 00 00 00 10 f4 12 00 .......x........
000000000012f2f0 18 5d 01 78 18 d0 6e 02 - e0 3f 6f 02 e0 00 92 a4 .].x..n..?o.....
000000000012f300 b0 2d 21 02 0c dc 90 7c - 89 b2 91 7c 90 26 00 00 .-!....|...|.&..
000000000012f310 28 2c 21 02 88 f3 12 00 - fd 10 90 7c 28 2c 21 02 (,!........|(,!.
000000000012f320 56 0f a6 71 a8 44 a5 71 - 2a 41 6f 02 a8 7c 0c 02 V..q.D.q*Ao..|..
000000000012f330 e0 00 92 a4 e8 f3 12 00 - 01 00 00 00 00 00 00 00 ................
000000000012f340 20 00 00 00 10 f4 12 00 - 21 00 91 7c 00 00 00 00 .......!..|....
000000000012f350 0f 00 00 00 20 02 00 00 - 00 00 00 00 00 00 00 00 .... ...........
000000000012f360 00 00 00 00 4c f3 12 00 - e8 c8 17 00 00 00 00 00 ....L...........
000000000012f370 28 f3 12 00 00 00 00 00 - cc f4 12 00 f0 71 a7 71 (............q.q
000000000012f380 b0 44 a5 71 ff ff ff ff - a8 44 a5 71 16 4d ab 71 .D.q.....D.q.M.q
000000000012f390 08 3b 00 00 e8 f3 12 00 - 01 00 00 00 00 f4 12 00 .;..............
000000000012f3a0 fc f3 12 00 1f 2e ab 71 - a8 7c 0c 02 a8 7c 0c 02 .......q.|...|..
000000000012f3b0 1f 4d ab 71 2a 41 6f 02 - e0 3f 6f 02 00 75 0c 02 .M.q*Ao..?o..u..
000000000012f3c0 00 00 00 00 f0 f3 12 00 - a3 2e ad 71 08 3b 00 00 ...........q.;..
000000000012f3d0 e8 f3 12 00 01 00 00 00 - 00 f4 12 00 fc f3 12 00 ................
000000000012f3e0 00 00 00 00 00 00 00 00 - 00 40 00 00 2a 41 6f 02 .........@.

Re: wodSmtp.dll and DrWtsn32

by wodDamir, Thursday, September 04, 2008, 23:08 (5923 days ago) @ Chris Demmings

Hi Chris,

Can you check the component for errors? Do you receive an error in the component?

Can you check LastError property when this happens?

Regards,
Damba

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Friday, September 05, 2008, 16:52 (5922 days ago) @ wodDamir

Hi Chris,

Can you check the component for errors? Do you receive an error in the component?

Can you check LastError property when this happens?

Regards,
Damba


I am not checking the LastError specifically. Currently in the '_Done' event there is an error number and description passed into that function that I am looking at. Unfortuneately, the log is not updated because it appears that it aborts prior to being able to log.

I will add a check in the '_Progress' event to see if LastError has something in it.

Also, a quick question for you.
I took the basis for our application from the sample in: VBComponent6. CC and BCC

I noticed in the 'wodSmtp1_Done' event, you re-create an instance of the wod...

' let's grab new instance.. it's safer that way
Set wodSmtp1 = New wodSmtpCom

I am not doing this because I noticed in testing that when large attachments are included and many emails are going out with the same attachment, if I created the instance every time, there was a delay sending each mail.

Is there some reason that this should be done?

Also, there is a version 1.3.7 on your website. Is there any bug fixes released in this version compared to 1.3.6.65 or was it only feature enhancements?

Thanks
Chris.

Re: wodSmtp.dll and DrWtsn32

by woddrazen, Friday, September 05, 2008, 17:06 (5922 days ago) @ Chris Demmings

Chris,


New instance is added because this is how samples works. You can of course use your logic and make application to use only one instance of wodSMTP.

New 1.3.7 version was release because of 'newline' characters bug that was fixed. Latest version is 1.3.7.72.

You can find wodSmtp release notes here:
http://www.weonlydo.com/index.asp?showform=Smtp&rnotes=1


Drazen

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Friday, September 05, 2008, 17:15 (5922 days ago) @ woddrazen

Chris,


New instance is added because this is how samples works. You can of course use your logic and make application to use only one instance of wodSMTP.

New 1.3.7 version was release because of 'newline' characters bug that was fixed. Latest version is 1.3.7.72.

You can find wodSmtp release notes here:
http://www.weonlydo.com/index.asp?showform=Smtp&rnotes=1


Drazen

Hello Drazen,

Would it be possible to get a Symbolic debug file .pdb that I could install at the customer site so I could give you some meaningful debug information. I don't think that checking the lasterror will help when the program is aborting and it is unlikely I would be able to catch any return error codes.

Thanks
Chris.

Re: wodSmtp.dll and DrWtsn32

by woddrazen, Friday, September 05, 2008, 17:20 (5922 days ago) @ Chris Demmings

Chris,


Can you please add DebugFile Property to your wodSMTP code and send us output when error occur.
[code]smtp1.DebugFile = c:\debug.txt [/code]
Please make sure that you add DebugFile Property before calling any wodSMTP Method.


Drazen

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Friday, September 05, 2008, 18:44 (5922 days ago) @ woddrazen

Chris,


Can you please add DebugFile Property to your wodSMTP code and send us output when error occur.
[code]smtp1.DebugFile = c:\debug.txt [/code]
Please make sure that you add DebugFile Property before calling any wodSMTP Method.


Drazen


Thanks.... Will do.

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Monday, September 08, 2008, 14:47 (5919 days ago) @ Chris Demmings

Chris,


Can you please add DebugFile Property to your wodSMTP code and send us output when error occur.
[code]smtp1.DebugFile = c:\debug.txt [/code]
Please make sure that you add DebugFile Property before calling any wodSMTP Method.


Drazen


Thanks.... Will do.


Hey Drazen,

I made the change to our DLL Friday and lucky (?) for me, we started having serious problems Friday night.

It appears from the log that the problem is occuring when the customer is doing attachments on their eMails. In their case, they are doing two attachments. One is a .PDF and is 605K and the other is a .DOC and is 111K.

Our email application was going down very quickly and here is what I found at the bottom of the ERROR.TXT file that was captured by the new statement included in my code (this is the end from 8 different times that it bombed).

------
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.3eee.27810D39.e10.FA0--
*** Sending 41038860 bytes:
.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.51db.27929225.1390.B1C--
*** Sending 41075420 bytes:
.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.5afa.27A3BA7B.1354.CC4--
*** Sending 40975412 bytes:
.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.6d9e.27A890F2.11f8.17AC--
*** Sending 40966652 bytes:
.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.ac6.27A98506.17c0.16F4--
*** Sending 40665492 bytes:
.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.5dfb.27AB1829.29c.700--
*** Sending 40665492 bytes:
.


AAAAAAAAAA==
------_=_wodSmtp.61b1.27ABF80A.1690.1684--
*** Sending 40665492 bytes:
.


AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA==
------_=_wodSmtp.6d40.27D14098.29c.1570--
*** Sending 41036700 bytes:
.

--------------------------------------

I took out the code that does attachments for the time being. Here is what it looks like:


' CJD(20080905) - Problem code
' Are there attachments for this email ?
If Not (colAttachmentFiles Is Nothing) Then
If colAttachmentFiles.Count > 0 Then
' If this eMail is the same as the last one - don't redo the attachments...takes too long.
If bDifferent Then
Call WriteLogFile( Setting attachments ) ' CJD(20080905)
For nIndex = 1 To colAttachmentFiles.Count
Call WriteLogFile(colAttachmentFiles(nIndex)) ' CJD(20080905)
wodSmtp1.Message.Attach (colAttachmentFiles(nIndex))
Next
End If
End If
End If

--------------------------

Before taking out the code, I tried setting the wodSmtp1 instance to Nothing and then re-creating every time, but that had no effect.

Also, it appeared that it would send anywhere from 1 to 10 emails with attachments before it bombed.

When I included myself on the email list, I received my attachments that they look fine, so it does not happen every time.

Thanks.

Chris.

Re: wodSmtp.dll and DrWtsn32

by wodDamir, Monday, September 08, 2008, 15:23 (5919 days ago) @ Chris Demmings

Hi Chris,

Is there any chance we could reproduce this? Can you reproduce it at will?

If so, could you perhaps send us a simple sample that we could run on our side in order to duplicate the problem? In that case, you can send sample to techsupport@weonlydo.com

Regards,
Damba

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Monday, September 08, 2008, 15:25 (5919 days ago) @ wodDamir

Hi Chris,

Is there any chance we could reproduce this? Can you reproduce it at will?

If so, could you perhaps send us a simple sample that we could run on our side in order to duplicate the problem? In that case, you can send sample to techsupport@weonlydo.com

Regards,
Damba


Damba,

Funny you should say that. I am setting up an environment to test that as we speak.

Thanks.

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Tuesday, September 09, 2008, 15:49 (5918 days ago) @ Chris Demmings

Hi Chris,

Is there any chance we could reproduce this? Can you reproduce it at will?

If so, could you perhaps send us a simple sample that we could run on our side in order to duplicate the problem? In that case, you can send sample to techsupport@weonlydo.com

Regards,
Damba


Damba,

Funny you should say that. I am setting up an environment to test that as we speak.

Thanks.

Damba,

I have tried testing in the office and using the company SMTP server and also connecting to the production SMTP server used for our web application. I cannot duplicate the problem myself in a test environment.

However, if I create a large broadcast on the live production system where the SMTP server is on the same machine as the email client, I can cause the problem to happen quickly and not so quickly.

I have found that the normal setting for our application of sending 10 emails followed by a one second pause will cause the DLL to abort fairly quickly with the 750K in attachments (say withing 10 to 30 seconds). However, if I drop the email rate down to 1 email per second, it does not crash for a significant period of time sending the same large emails. It does eventually crash however. Last night I left it running sending emails at around 4 and it was dead by 8. But this sent a significantly larger number of emails with large attachments that normal.

Question: Is there something that the email client should be doing to check if the server is being swamped?

Thanks

Chris.

Re: wodSmtp.dll and DrWtsn32

by woddrazen, Tuesday, September 09, 2008, 16:07 (5918 days ago) @ Chris Demmings

Chris,


wodSMTP don't have such option. I don't think that other SMTP client has such option.

Are you maybe using Sleep in your code to delay sending message? Sleep API block same thread where wodSMTP lives.

You are sending lots of emails, maybe using new instance of wodSmtp for each new email is good idea. How much delay you have when you use new instance of wodSMTP for each email? Maybe you can try with new instance and see what happened.

Also if you didn't done that already please update wodSMTP to latest 1.3.7.72 version.


Drazen

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Tuesday, September 09, 2008, 20:04 (5918 days ago) @ woddrazen

Chris,


wodSMTP don't have such option. I don't think that other SMTP client has such option.

Are you maybe using Sleep in your code to delay sending message? Sleep API block same thread where wodSMTP lives.

You are sending lots of emails, maybe using new instance of wodSmtp for each new email is good idea. How much delay you have when you use new instance of wodSMTP for each email? Maybe you can try with new instance and see what happened.

Also if you didn't done that already please update wodSMTP to latest 1.3.7.72 version.


Drazen


Hey Drazen,

Is there some way to get the latest production .DLL, I think that the download page listed is for trial version only?

Chris.

Re: wodSmtp.dll and DrWtsn32

by wodDamir, Tuesday, September 09, 2008, 20:07 (5918 days ago) @ Chris Demmings

Hi Chris,

in order to get update for our product, please go to

http://www.weonlydo.com/index.asp?update=1

This is automated process. Make sure you use same email address that is registered with our system, one you used when you have purchased the product.

Regards,
Damba

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Wednesday, September 10, 2008, 16:30 (5917 days ago) @ wodDamir

Hi Chris,

in order to get update for our product, please go to

http://www.weonlydo.com/index.asp?update=1

This is automated process. Make sure you use same email address that is registered with our system, one you used when you have purchased the product.

Regards,
Damba


Greetings Damba,

I believe that I have found what is causing the abort. Your suggestion of looking for code that sleeps prompted me to look for any blocking code in our program. I found one VB TIMER that periodically reloads all of the school districts. It appears that as the number of school districts has increased - where previously this was not a problem - but now it is. The code was now structured to not reload if it happens to be emailing (but it is when emailing with attachments that really causes the problem).

However, I would not have thought that the DLL would actually abort if the system was busy. At worst we should get some kind of error or the sent message might be chopped off or something. Anyway, it is working now and I still have my job.

Thanks for now.

Chris.

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Thursday, September 11, 2008, 20:30 (5916 days ago) @ Chris Demmings

Hi Chris,

in order to get update for our product, please go to

http://www.weonlydo.com/index.asp?update=1

This is automated process. Make sure you use same email address that is registered with our system, one you used when you have purchased the product.

Regards,
Damba

Damba,

Another day, another bomb. Although our application is more stable than before, it still appears that any other activity within the application will cause the wodSMTP.DLL to crash.

Is there anyway you could provide the .DBG file for the DLL so I could show you where your application is crashing. To me it does not seem right that if our application is busy even for milliseconds that your DLL will crash. Is this not an multi-thread asynchronous DLL? Is anybody looking into this particular issue?

Thanks


Chris.

Re: wodSmtp.dll and DrWtsn32

by woddrazen, Thursday, September 11, 2008, 21:08 (5916 days ago) @ Chris Demmings

Chris,


Component is single-threaded, you should use it from the same thread where you initialized it. Can you move it completely to separate thread?

You can't use it in one thread, and then call it from another.


Drazen

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Thursday, September 18, 2008, 19:31 (5909 days ago) @ woddrazen

Chris,


Component is single-threaded, you should use it from the same thread where you initialized it. Can you move it completely to separate thread?

You can't use it in one thread, and then call it from another.


Drazen

I have changed from .blocking = False to True. There is no other activity going on in the program while an email is being sent.

But regardless of that, whenever we encounter a large number of emails that are going out with attachments, it will abort within the wodSmtp on a regular basis.

Are you sure that there are no volume issues with the DLL. In these cases where it aborts, we would be sending around 10 emails a second, each with an attachment of over 100K.

Is there no possiblity of using a .PDG file on the server so that we can diagnose what command is failing inside the DLL?

Thanks.

Re: wodSmtp.dll and DrWtsn32

by wodDamir, Thursday, September 18, 2008, 19:37 (5909 days ago) @ Chris Demmings

Chris,

You mentioned that you couldn't duplicate this in the office, but that this only occurs on server. Perhaps there is some restriction on that machine? A Firewall blocking or not allowing larger attachements?

If we could duplicate this, this would be probably fastest way to deal with this issue.

Regards,
Damba

Re: wodSmtp.dll and DrWtsn32

by Chris Demmings, Thursday, September 18, 2008, 19:43 (5909 days ago) @ wodDamir

Chris,

You mentioned that you couldn't duplicate this in the office, but that this only occurs on server. Perhaps there is some restriction on that machine? A Firewall blocking or not allowing larger attachements?

If we could duplicate this, this would be probably fastest way to deal with this issue.

Regards,
Damba

It is not a machine issue since I am able to sub in our old OSSMTP.DLL from Ostrosoft and we don't have any issues with it. We needed to switch from OSSMTP as some of our customers had authentication issues which they could not resolve. However, in our hosted environment, the OSSMTP is able to log on without problems.

Re: wodSmtp.dll and DrWtsn32

by wodDamir, Thursday, September 18, 2008, 20:15 (5909 days ago) @ Chris Demmings

Chris,

Do you perhaps own a Source code license? Even with this file, it wouldn't help us, since if still wouldn't point to the location that caused the problem.

However, if you could send us something so we could reproduce this, then we could check this out closer.

Regards,
Damba