Home

Licence activation MacOS/Crossover error

Hello, just upgraded to Linqpad6

When trying to activate my license I get the following error.

Using MacOS and Crossover:

Opened a new thread here better than the old one. Thank you.

Comments

  • What do you get when you run the following query?
    http://share.linqpad.net/rfpxkf.linq

    Also, can you try opening the NuGet package manager (Ctrl+Shift+P). It should list packages that contain LINQPad Samples. Does that work correctly for you?

  • edited January 2021

    Thank you.

    The query works and throws the following output:

    U3ltS2V5gACYpna8Ngzki4q5alvRaHtrOsuyU22YKZ9jqLjMsaTabc6oc1NZU+Qe+gPo+wKkjM8x+htvt7rFuFXc/D7+ERsyvc0QpXG+yLLxcw85CncqX0CAII0WXlbQoP5c2ID5lJwDUEpTMIDZHGEzErPJ1GAPLYscO2iiMWwHG6d1u3tIRmTlbbBb+WBVaUN8CTAep7o=

    Opening the NuGet package manager shows the following:

    And finally, when closing it shows:

    (this seems a common error dialog that doesn't affect functionality)

    THANK YOU!!!! Looking forward to make this work, if you need anything else you can send me a direct message or an email and we can work together. Thanks

  • Any chance I could get some help with activation as well? I'd love to help test and fix some of the main issues. If we can get this working, the last remnant of my perfect dev environment will be available to me without parallels. :)

  • edited January 2021

    I'm working on this at the moment. The activation problem is caused by what seems like a bug in WINE's implementation of the OS symmetric cryptography libraries. It's likely that I can work around this by using a third-party cryptography library instead. There also a bunch of other issues that I'm working on, including the semi-random exceptions that keep popping up.

  • @JoeAlbahari Yes, that makes sense. The semi random exceptions seem to be related to UX components being unloaded and perhaps being expected to perform a task during that time. I'm wondering if a simple ignore of that particular exception when running under wine (perhaps a flag in a config file or env var) in the global exception handler would be enough.

    I also noticed that when you click on a navigation property link in the rich text view of the results, nothing happens, though the query gets executed.

    I've already had several of my co-workers get excited about using linqpad (even at a reduced capacity) directly on macos. I wonder if you could work out a referral deal with Crossover so that you could sell a package of linqpad+crossover to enable things to run on macos. I'm pretty sure a ton of people I know would jump all over that.

    Any ETA on a new beta drop for some fixes? I'll keep my eyes peeled but want to help you test ASAP.

  • edited January 2021

    Wow this is great, im very very excited. Keep it up @JoeAlbahari thank you!

    Oh and just by the way @JoeAlbahari, which macbook did you purchase? The Intel based one? Or the one with the M1 chip?

  • edited January 2021

    I've uploaded a special build that you can try:
    https://linqpad.azureedge.net/experimental/LINQPad6-Beta.zip?cache=6.12.5.963425

    This allows you to activate a paid edition, and works around most of the UiaDisconnectProvider exceptions.

    Note that you can fix the blocky rendering by control-clicking the bottle containing LINQPad, and selecting Settings > High Resolution Mode.

    While autocompletion should mostly be working, I've had little success in lighting up the debugger: the target process appears to crash after resuming from a break. Also, LINQPad's debugger UI, which is written in WPF, appears to overstretch Wine's rendering capabilities.

    The biggest outstanding problem, though, is frequent page faults. It's difficult to determine their cause, although they seem to be connected to use of the WebBrowser control, which LINQPad uses to render results. It looks like CrossOver provides something that emulates IE9. When I launch IE as a standalone browser in a Win 10 64-bit bottle, it doesn't get as far as displaying the default page, which is not a good sign. It works better in a 32-bit bottle, although I've had no success in getting the 32-bit version of .NET 5 and LINQPad to run. The crippled web browser also explains why you can't click on hyperlinks, or use other interactive result rendering features of LINQPad.

    There also issues with modifier keys getting stuck, and sometimes with CrossOver freezing. Just recently, the only way out was to force-restart the machine.

    I have an M1 chip, which adds another emulation layer to the stack. It's possible that you could get better results with an Intel-based MacBook. Let me know how you get on.

  • edited January 2021

    @JoeAlbahari Thanks! I was able to get the activation done and the constant UiaDisconnectProvider exceptions are gone. The debugger has an issue though, as it tries to load a COM dll that is missing:

    Debugger error: Retrieving the COM class factory for component with CLSID {0A29FF9E-7F9C-4437-8B11-F424491E3931} failed due to the following error: 80040154 0x80040154 (REGDB_E_CLASSNOTREG).

    I've not seen any crashes related to the debugger yet though. The little research I was able to do indicated that this is due to a missing registration for CLSID_CorSymBinder_SxS.

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/acbc1017-aaa6-4080-b75a-d2e4b3f454e8/file-name-and-line-number-in-stacksnapshotcallback-unmanaged-api-for-profiling?forum=clr

    A few more searches seemed to indicate that related to diasymreader.dll.

    https://github.com/dotnet/coreclr/commit/10b964f1beab13479c223f594cdd55a6e583eb3e

    It seems as if that can be added via a nuget package to the query, but my tests were not successful when trying. Let me know if there is something else I should install or attempt. In the meantime, I'll keep tinkering at it to see if I can get it working.

    I'm running on a 64 bit Win 10 bottle, .net core 3.1 and .net 5 installed on it, and manually copying over the beta into C:\tools\LinqPad6-Beta. I'm running the LINQPad6.exe command. 2019 16" MBP 2.4 GHz 8-Core Intel Core i9, 64 GB 2667 MHz DDR4 RAM, AMD Radeon Pro 5500M 8 GB, Big Sur 11.1

    Thanks so much! Even having this amount of functionality drastically improves my working environment.

  • I get a couple of random crashes every now and then.

    Tbh this is better than popping up the virtual machine open, and have at least 2gb of memory eaten and my computer going slow.

    Maybe with time we will be able to find workarounds to all the issues.

    Are you planning to actually support this Wine version @JoeAlbahari.

    Thank you very much!

  • I'm reluctant to officially support CrossOver because there's too much stuff that doesn't work, for which there doesn't appear to be an easy fix. I can't run it for more than a few minutes at a time on my own MacBook due to the page faults (this may be an M1 issue).

    But I'm happy to incorporate what modifications I can to minimize known issues with CrossOver until a better solution becomes available (most likely, MAUI).

  • Ok good. Yes that might be an M1 issue. Sometimes linqpad crashes but is not that bad. Maybe that got fixed in the next macos update.

    https://github.com/dotnet/runtime/issues/44897

    But yeah that sounds good, or at least good enough for now :D ty

  • That's good to hear. FWIW, I'm currently working on the somewhat-large task of decoupling LINQPad from the IE DOM. This will enable support for other browsers, the first being Edge's Chromium-based engine. From there, it should be much easier to adapt whatever browser will be on offer with MAUI, should a Mac port via MAUI be viable.

  • Those are excellent news!! I'm sure that at least, that would reduce glitches regarding the IE component and make it more stable when being run using CrossOver.

    Hopefully these are steps to get a native MacOS/Linux version sooner.

  • Ok I did some more actual work with LINQPad, and yes, it crashes every 2 - 5 minutes.

    So if those crashes are connected to the IE DOM then in theory when the decoupling is done, we might have those. random crashes solved?

  • edited February 2021

    Oh wow, I've got it running and activated on Ubuntu using Crossover with the beta!

    It blows up when I open the Nuget package manager (error dump here: https://pastebin.com/qMdF3J21), with
    Unhandled exception: unimplemented function api-ms-win-crt-private-l1-1-0.d._o_setlocale called in 64-bit code (0x000000007bc8700c).

    This is very very cool!

    edit: I realise this may be as good as it gets as Crossover is unsupported, no worries!

  • @wocar - the decoupling is a step toward a native Mac version in the future. CrossOver doesn't support the Edge Chromium browser (nor does it work with the CefSharp library).

  • Wine developer here. Is it possible to download a version of LINQPad 6 from before you started adding workarounds for Wine? Some of the problems mentioned in this thread would be very easy to fix if I could reproduce them.

  • The problems in Wine that I've worked around so far should be easy to reproduce with a test project.

    1. Calling var rsa = RSA.Create(), followed by rsa.ImportParameters. (My workaround was to call rsa = new RSACryptoServiceProvider (new CspParameters { Flags = CspProviderFlags.UseMachineKeyStore }); and then to call rsa.ImportParameters (key);
    2. The CreateAccessibilityInstance() method in most WinForms controls crashes - this is called indirectly by other methods and properties. (My workaround was to override this method on WinForms controls to return null if running on Wine.)

    The other problems still exist in the current version of LINQPad:
    1. WPF code crashes (such as the NuGet package manager)
    2. The debugger API calls appear to fail (before it gets to the WPF bits)
    3. (On MacOS CrossOver) the program page faults after a few minutes of use.

    Contact me privately if you'd like an activation code for the premium edition.

  • I can't reproduce the crash in NuGet.

    The debugger exception appears to be because Mono does not include diasymreader.dll (thanks dafergu2 for the analysis!). Installing the official .NET Framework 4.8 fixes it.

    Could you please post minimal code examples to reproduce the RSA and CreateAccessibilityInstance problems?

  • Note that these issues might affect only CrossOver for Mac and not Wine on Linux; I've not checked.

    A repro for RSA:

    using System.Security.Cryptography;    
    var rsa = RSA.Create();
    

    A repro for CreateAccessibilityInstance:

    using System.Windows.Forms;
    void Main()
    {
        var form = new Form();
        form.Controls.Add (new Button { Dock = DockStyle.Fill, Text = "Click me" } );
        form.ShowDialog();
    }
    

    I've also sent you a link to download LINQPad 6.11.11 which didn't have the fixes.

  • Both of those code samples worked for me. I bet your problems will be fixed the next time CrossOver rebases onto a new version of Wine :-)

Sign In or Register to comment.