Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App crashes after a few seconds after started recording #8

Closed
barisengez opened this issue Aug 6, 2019 · 34 comments
Closed

App crashes after a few seconds after started recording #8

barisengez opened this issue Aug 6, 2019 · 34 comments

Comments

@barisengez
Copy link

barisengez commented Aug 6, 2019

There is no debug info so I can't attach anything.
After pressing record, application show "has stopped working blah blah close the program". If I have a lot of assembly bindings going on on the background, it crashes almost instantly.
When I open the recent session, it shows the assembly list for a few seconds then it also crashes.
Crashes with 1.1 and 1.0 but 0.8 works

@awaescher
Copy link
Owner

awaescher commented Aug 12, 2019

Will Fusion++ crash even without doing anything? Please try to just run it and wait. If it is at about 5 seconds after the start, then it might be related to the check for updates.

In any case, you could use the Fusion log to trace itself: In this case, you should use the old FUSLOGVW.exe and activate the trace once Fusion++ did start. Don't click record then, but open a recent session (because recording will affect the FUSLOGVW.exe-settings).

@c33s
Copy link

c33s commented Aug 12, 2019

i have the same problem but not only after start to record but also if i wait a few secs.

Problem signature:
  Problem Event Name:	CLR20r3
  Problem Signature 01:	Fusion++.exe
  Problem Signature 02:	1.1.0.0
  Problem Signature 03:	5cec494f
  Problem Signature 04:	mscorlib
  Problem Signature 05:	4.7.2650.0
  Problem Signature 06:	5ab1cc12
  Problem Signature 07:	5ca1
  Problem Signature 08:	2c
  Problem Signature 09:	System.IO.FileNotFoundException
  OS Version:	6.1.<redacted>
  Locale ID:	1033
  Additional Information 1:	0a9e
  Additional Information 2:	0a9e372d3b4ad19135b953a78882e789
  Additional Information 3:	0a9e
  Additional Information 4:	0a9e372d3b4ad19135b953a78882e789

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt
Application: Fusion++.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
   at TinySoup.WebSoupClient+<CallWebServiceAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[TinySoup.WebSoupClient+<CallWebServiceAsync>d__8, Fusion++, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null]](<CallWebServiceAsync>d__8 ByRef)
   at TinySoup.WebSoupClient.CallWebServiceAsync(System.String, System.String)
   at TinySoup.WebSoupClient.PutAsync(System.String)
   at TinySoup.WebSoupClient+<CheckForUpdatesAsync>d__3.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at FusionPlusPlus.Forms.MainForm+<CheckForUpdatesAsync>d__32.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at FusionPlusPlus.Forms.MainForm+<<OnShown>b__12_0>d.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1(System.Object)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Faulting application name: Fusion++.exe, version: 1.1.0.0, time stamp: <redacted>
Faulting module name: KERNELBASE.dll, version: 6.1.<redacted>, time stamp: <redacted>
Exception code: 0xe0434352
Fault offset: 0x0000c54f
Faulting process id: 0x3374
Faulting application start time: <redacted>
Faulting application path: C:\Program Files\Fusion++\Fusion++.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: <redacted>

its a file not found exception, can it be the update function you wrote about? my system has a firewall and blocks outgoing connections. but i cannot find an entry about fusion.exe to be blocked. also enabling the firewalls wizard mode does not resulted in seeing a request from fusion.

currently i don't really want to install fuslogvw, haven't found a simply download link and don't want to mess up my registry.

@awaescher
Copy link
Owner

Interesting. However the RepoZ issue you linked seems to be a different thing.

This one here is definitely the update check as you can see the method name CheckForUpdatesAsync(). To me, another RepoZ issue looks way more related, however it is a FileLoadException instead of a FileNotFoundException mentioned here.

I tried a lot to make the update request fail, like cutting the connection, blocking all calls within the Windows Firewall and creating request timeouts with Fiddler proxy. No problems here.

I suspect this could be a problem with the HttpClient on different .NET versions. I'll take a look on it later.

@awaescher
Copy link
Owner

I did a very subtle change and moved the variable declaration of the HttpClient into a try-catch-block. This won't fix errors with the HttpClient, but might help to keep the app open.

Would you please try this one?

https://github.com/awaescher/Fusion/releases/download/untagged-5210c1832b8e4d534acd/Fusion++.1.1.1.zip

@awaescher
Copy link
Owner

awaescher commented Aug 13, 2019

Okay, seems GitHub kept this private for me. Sigh.
Pretty good profile image for this 😃

I just used any file hoster. Please try again here.

@c33s
Copy link

c33s commented Aug 14, 2019

I just used any file hoster. Please try again here.

"You are not authorized to download this file."

what happend to the good old hosting systems, where i was able to download the file with wget?

@awaescher
Copy link
Owner

awaescher commented Aug 14, 2019

OMG, okay now next try. Use this download link from the FTP of my side company.

Thanks for your patience.

@awaescher
Copy link
Owner

News?

@c33s
Copy link

c33s commented Aug 19, 2019

will test it asap. had no time the last days...

@c33s
Copy link

c33s commented Aug 19, 2019

(download worked)

@c33s
Copy link

c33s commented Aug 22, 2019

now fusion++ instantly crashes.
Problem Signature 09: System.IO.FileNotFoundException

Application: Fusion++.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
   at FusionPlusPlus.Forms.MainForm..ctor()
   at FusionPlusPlus.Program.Main()
Faulting application name: Fusion++.exe, version: 1.1.1.0, time stamp:
Faulting module name: KERNELBASE.dll, version: 6.1, time stamp: 
Exception code: 0xe0434352
Fault offset: 0x0000c54f
Faulting process id: 0x2c78
Faulting application start time: 0x01d5590995e19172
Faulting application path: C:\Program Files\Fusion++\Fusion++.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: 

@awaescher
Copy link
Owner

I built a test version out of the current master branch. This could have been not the best idea I had.
Sorry for that. Try this one now, please.

@c33s
Copy link

c33s commented Aug 23, 2019

still crashes after a few secs.

Application: Fusion++.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
   at TinySoup.WebSoupClient+<CallWebServiceAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[TinySoup.WebSoupClient+<CallWebServiceAsync>d__8, Fusion++, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null]](<CallWebServiceAsync>d__8 ByRef)
   at TinySoup.WebSoupClient.CallWebServiceAsync(System.String, System.String)
   at TinySoup.WebSoupClient.PutAsync(System.String)
   at TinySoup.WebSoupClient+<CheckForUpdatesAsync>d__3.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at FusionPlusPlus.Forms.MainForm+<CheckForUpdatesAsync>d__32.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at FusionPlusPlus.Forms.MainForm+<<OnShown>b__12_0>d.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1(System.Object)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Faulting application name: Fusion++.exe, version: 1.1.0.0, time stamp: 
Faulting module name: KERNELBASE.dll, version: 6.1.
Exception code: 0xe0434352
Fault offset: 0x0000c54f
Faulting process id: 0x2ad4
Faulting application start time: 
Faulting application path: C:\Program Files\Fusion++\Fusion++.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: 

@awaescher
Copy link
Owner

Okay, just like it was before. Did you try to clone and run Fusion++ by yourself in Visual Studio?

@c33s
Copy link

c33s commented Aug 23, 2019

no i haven't tried. my focus is php, terraform & puppet :) so not really energy for another ide and language.
also this language really scares me (says the php developer). for me its really strange, that a stacktrace doesn't help to debug the problem. its a file not found exception but the trace doesn't tell me which file.
so sorry no custom compiling, just wanted to be good opensource citizen and report the bug in repoz (i don't use it myself, just to help another person out).

@awaescher
Copy link
Owner

Yeah, I struggle with these callstacks as well. I don't know whether the async calls hide the real exception or the file name of the file it is searching. However, there's nothing for me to see here.

Maybe this is a problem with your system and you should repair the .NET installation. I don't know. But we see this behavior in both, Fusion++ and RepoZ on your machine.

It would be incredibly useful if you could set up a VS project using the TinySoup.cs (which is used to check for updates) and call it like this:

    private void CheckForUpdates()
    {
        var request = new UpdateRequest()
            .WithNameAndVersionFromEntryAssembly()
            .AsAnonymousClient()
            .OnChannel("stable")
            .OnPlatform(new OperatingSystemIdentifier());

        var client = new WebSoupClient();
        var updates = await client.CheckForUpdatesAsync(request);

        var availableUpdate = updates.FirstOrDefault();
    }

However, I understand if you don't want to try this.

@c33s
Copy link

c33s commented Aug 24, 2019

Maybe this is a problem with your system and you should repair the .NET installation. I don't know. But we see this behavior in both, Fusion++ and RepoZ on your machine.

hmm, but i have no other .net apps that are crashing. so i think it is not a broken installation. i can think of a too old version of .net. which version your apps are using?

my main problem is time... if you have a full prepeared mini project which i only have to open and press compile and i find a real offline iso of visual studio (i don't want to execute any downloades, only my browser i trust) , i think i can help.

in genereal my system is firewalled and behind a proxy server. often i had problem with software trying to connect to the net and assume that there is no firewall. or software which does not obey the system proxy setting or the HTTP_PROXY variable. to sum it up, all network connections even to 127.0.0.1 are blocked.

@awaescher
Copy link
Owner

I see, yeah in both, Fusion++ and RepoZ, you have the problem with the HttpClient to check for updates. I'll do a minified project for you.

I don't think that firewalls are a problem, I battle-tested it with no internet, everything-blocking-firewalls and much more. I did not get any error (besides timeouts which are expected).

@techabilla
Copy link

Also have problem that app crashes after a few seconds. Event viewer has:
Application: Fusion++.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
at TinySoup.WebSoupClient+d__8.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[TinySoup.WebSoupClient+d__8, Fusion++, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null]](d__8 ByRef)
at TinySoup.WebSoupClient.CallWebServiceAsync(System.String, System.String)
at TinySoup.WebSoupClient.PutAsync(System.String)
at TinySoup.WebSoupClient+d__3.MoveNext()


Built a .NET app with TinySoup.CS and got no errors (although had to modify signature for CheckForUpdatesAsync to 'async Task'. Empty list being returned.

@techabilla
Copy link

When Fusion crashed, I tried using the 'Debug' option, which loaded VS. This showed the following exception:

System.IO.FileNotFoundException
HResult=0x80070002
Message=Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=Fusion++
StackTrace:
at TinySoup.WebSoupClient.d__8.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)
at TinySoup.WebSoupClient.CallWebServiceAsync(String method, String parameterString)
at TinySoup.WebSoupClient.PutAsync(String parameterString)
at TinySoup.WebSoupClient.d__3.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at FusionPlusPlus.Forms.MainForm.d__32.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at FusionPlusPlus.Forms.MainForm.<b__12_0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_1(Object state)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

@techabilla
Copy link

techabilla commented Sep 30, 2019

Looks like F++ is trying to load 4.2.0.0 of System.Net.Http. According to GACUTIL, this isn't present on my laptop.

Fusion log:

*** Assembly Binder Log Entry (30/09/2019 @ 4:37:19 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Users\my.username\Downloads\Fusion++.1.1\Fusion++.exe
A detailed error log follows.
Pre-bind state information:
LOG: DisplayName = System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///C:/Users/my.username/Downloads/Fusion++.1.1/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Fusion++.exe
Calling assembly : Fusion++, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null.

LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Users/my.username/Downloads/Fusion++.1.1/System.Net.Http.DLL.
LOG: Attempting download of new URL file:///C:/Users/my.username/Downloads/Fusion++.1.1/System.Net.Http/System.Net.Http.DLL.
LOG: Attempting download of new URL file:///C:/Users/my.username/Downloads/Fusion++.1.1/System.Net.Http.EXE.
LOG: Attempting download of new URL file:///C:/Users/my.username/Downloads/Fusion++.1.1/System.Net.Http/System.Net.Http.EXE.
LOG: All probing URLs attempted and failed.

@awaescher
Copy link
Owner

Welcomle @techabilla, that is very helpful input - thank you. It seems we found something big: Googling for System.Net.Http 4.2.0.0 shows how many open issues there are on GitHub 😦

I cannot promise when, but I'll try BindingRedirects like suggested here in near future:
https://stackoverflow.com/a/48862675/704281

@awaescher
Copy link
Owner

Wow, so much chaos around that assembly.

Okay @techabilla & @c33s . Would you please try this new version 1.1.3? I removed the reference on System.Net.Http and added it again via NuGet. However, to me, the result looks the same.

So if that does not work (what I expect) would you please try again after putting the System.Net.Http assembly taken from the NuGet package next to the Fusion++ executable? I'm sorry, I cannot reproduce the behavior to test it by myself.

@awaescher
Copy link
Owner

Oh, and please make sure that your system runs the .NET Framework Runtime (v 4.7.2). I had a server image once missing that, running into KERNELBASE.dll errors in the Windows Event Log.

You can get it from here.

@techabilla
Copy link

As you expected, no difference for 1.1.3 on its own.

I added the DLL to the app dir, and Fusion log does show that it is 'downloaded', but it still fails the version check:

Calling assembly : Fusion++, Version=1.1.3.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Users/andrew.britton/Downloads/Fusion++ 1.1.3/System.Net.Http.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\Users\andrew.britton\Downloads\Fusion++ 1.1.3\System.Net.Http.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: The assembly reference did not match the assembly definition found.
ERR: Run-from-source setup phase failed with hr = 0x80131040.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

I checked the version on the DLL in dotPeek and confirmed it to be 4.1.1.3
Also checked the DLL ref in Fusion++.exe 1.1.3 and confirmed it to be 4.2.0.0

How ironic is it that an application for troubleshooting binding issues, has a binding issue!

@awaescher
Copy link
Owner

Very ironic, indeed. That was my first reaction in this thread:

In any case, you could use the Fusion log to trace itself: In this case, you should use the old FUSLOGVW.exe and activate the trace once Fusion++ did start. Don't click record then, but open a recent session (because recording will affect the FUSLOGVW.exe-settings).

I noticed that version (4.1.1.3), too. However, the package version is 4.3.4, so this is the latest version. As I said, there's so much chaos around that package/assembly.

The package contains other System.Net.Http.dlls. However they have the same number or even lower (4.0.0.0). There's no 4.2.0.0 in the webs. But you can check if you have one here: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2. In my case there's a System.Net.Http 4.2.0.0. Try copying that one next to Fusion++. However, Windows should be able to locate that one ...

@techabilla
Copy link

Installing v4.7.2 seems to have fixed the issue for me. Fusion log now includes the following:

LOG: Version redirect found in framework config: 4.2.0.0 redirected to 4.0.0.0.

@techabilla
Copy link

I should have read the SO post sooner. I now see the 4.2.0.0 version of System.Net.Http buried in the VS 2017 app folder. You're right though - the whole thing looked like a big mess.

@awaescher
Copy link
Owner

Okay, I'll note in the readme that the runtime is mandatory.
I would have loved to know if it works without the runtime if the assembly 4.2.0.0 is deployed with Fusion++ but your test scenario seems to be gone for good, isn't it?

@techabilla
Copy link

Yes - this is my work laptop; I don't want to get into uninstalling/re-installing .NET, and even if I did, I'm not sure it would be a realistic test. Presumably @c33s is also a VS 2017 user?

@awaescher
Copy link
Owner

Check, closing this for now. Thanks for your support.

@awaescher
Copy link
Owner

Friends, I just pushed Fusion++ 1.2. This version is built on top of .NET Core 3.1 instead of the .NET Framework.

I hope this will fix the mess with the HttpClient - and I'd be very happy if anyone could give me feedback whether or not the issue is gone now.

@avargaskun
Copy link

Hey @awaescher - I was getting the same System.Net.Http error when running version 1.1 (I need to run Fusion++ in a box where I cannot install .NET Core) and was able to fix the issue by adding a Fusion++.exe.config file.

Just posting in case others are stuck w/o .NET Core and need to run version 1.1. Perhaps you could add the file to the .ZIP of the 1.1 release? Thanks for writing such an awesome tool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants