_md5.ComputeHash() ( https://referencesource.microsoft.com/#mscorlib/system/security/cryptography/hashalgorithm.cs,a71a3cba2c656040 ) calls Initialize() which disposes the internal handle and creates a new one ( https://referencesource.microsoft.com/#mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs,80152d7eff9b1f70 ). If a ThreadAbortException occurs after the Dispose() but before the new handle is created, then the MD5 instance will become unusable because of its invalid state.
There's a lot of driver code that shares state between requests and threads for performance reasons so it's very likely that this exception could cause a failure in another part of the driver the next time it happens even if we attempt to make this specific class abort-safe. Bottom line is that ThreadAbortException is essentially evil and should be avoided at all costs so my advice would be to increase the ScriptTimeout to avoid this exception if possible.
Best regards,
João Reis | Senior Software Engineer - Drivers
Phone: 0800 021 0888 Email: cont...@codeweavers.net
Codeweavers Ltd | Barn 4 | Dunston Business Village | Dunston | ST18 9ABRegistered in England and Wales No. 04092394 | VAT registration no. 974 9705 63--
To unsubscribe from this group and stop receiving emails from it, send an email to csharp-driver-u...@lists.datastax.com.