Best I can tell, the files are in fact saved, it's just the process that gets stuck. This is what it looked like this afternoon, after I had updated several files in a row (one at a time):
I didn't have to kill the process afterwards, but it did report files still being saved, even hours later. I'm trying to reproduce it right now. (Using 3.1.6256)
Edit: So far, I can't reproduce it from a clean start, with nothing else going on. I had some of the files playing earlier; I wonder if it's related to files that are locked due to playback.
Edit 2: The only thing in my error log is this error as reported on the Additional Tagging & Reporting Tools thread: http://getmusicbee.com/forum/index.php?topic=3833.msg124227#msg124227
2/19/2017 10:59:56 PM - 10.0.14393.0 - 3.1.6256.33274 - System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: String
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at MusicBeePlugin.Plugin.ReceiveNotification(String sourceFileUrl, NotificationType type)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object parameters, Object arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture)