Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 10:22
    panyang1217 commented #6420
  • 09:58
    youlxs commented #6420
  • 05:50
    m2xs starred dotnet/orleans
  • 04:43
    azure-pipelines[bot] commented #6891
  • 04:43
    benjaminpetit commented #6891
  • 01:23
    Difficulty-in-naming closed #6888
  • Jan 14 23:35

    benjaminpetit on master

    Update NuGet.Config (#6873) (compare)

  • Jan 14 23:35
    benjaminpetit closed #6873
  • Jan 14 23:35

    benjaminpetit on master

    Do not hand off grain directory… (compare)

  • Jan 14 23:35
    benjaminpetit closed #6883
  • Jan 14 23:09

    benjaminpetit on master

    Avoid registering client observ… (compare)

  • Jan 14 23:09
    benjaminpetit closed #6879
  • Jan 14 23:08
    benjaminpetit synchronize #6891
  • Jan 14 17:43
    ReubenBond assigned #6888
  • Jan 14 17:43
    ReubenBond commented #6888
  • Jan 14 13:47
    ReubenBond edited #6884
  • Jan 14 13:46
    neville-agius starred dotnet/orleans
  • Jan 14 13:41
    maryammadzadeh commented #6888
  • Jan 14 13:22
    ReubenBond commented #6879
  • Jan 14 13:21
    ReubenBond synchronize #6879
Veikko Eeva
@veikkoeeva
@zeus82 If persisence works, do you have the same connection string in both? If not, can you connect to the database using the membership connection string?
Sanjeev M
@zeus82
yeah - its the exact same connection str.
Reuben Bond
@ReubenBond
It looks like you probably have thread pool starvation, potentially caused by blocking tasks or very high % lock contention.
Sanjeev M
@zeus82
I can just switch to localhost clustering or something, because I dont need clustering right now
Reuben Bond
@ReubenBond
You can most likely capture a memory dump and open it in VS' Parallel Stacks Thread & Tasks view to see what's going on
Sanjeev M
@zeus82
hmmm - thread starvation would not be good - the problem is, my app has been running for about 3 days, and I just noticed this once in the logs
I'll keep monitoring this, and see - I have an idea of what could be causing thread starvation, so I'll also look into that
Veikko Eeva
@veikkoeeva
Has this exactly same configuration been running three days?
Just to be sure.
Reuben Bond
@ReubenBond
It might be SQL specific, hard to say. It would directly detect if the Thread Pool is slow (slower than 1s = slow) each time it runs that check, and it isn't reporting it (degradation score is 1/8)
Sanjeev M
@zeus82
sorry - 2 days... it started up on the 12th and is still running
I only see this SQL timeout and membership issue once in the log
Veikko Eeva
@veikkoeeva
I see System.ComponentModel.Win32Exception which feels odd for Linux, hence wondering if it is so that this system has been running already.
Reuben Bond
@ReubenBond
I think an issue including logs + pics of the parallel stacks for both Threads & Tasks would help
Veikko Eeva
@veikkoeeva
There shouldn't be blocking in ADO.NET pieces, albeit there's been some issues on connector libraries. Probably on all of the vendor ones and around blocking.
Sanjeev M
@zeus82
yeah - I'll see what I can do for that... since its running on azure, on a linux vm, I'm just not sure how I can be logged in when the error occurs to take a core dump
just and FYI - I'm using System.Data.SqlClient
Reuben Bond
@ReubenBond
You can analyze linux memory dumps in VS now
Veikko Eeva
@veikkoeeva
The newer one is Microsoft.Data.SqlClient, it should be used.
Reuben Bond
@ReubenBond
You can get into the container and capture a dump using dotnet-dump See https://devblogs.microsoft.com/dotnet/diagnostics-improvements-in-net-5/
Veikko Eeva
@veikkoeeva
There's been issues like dotnet/runtime#24301, albeit I think all of them are fixed even for this older connector library.
It could also be that if all the connections are used and persisting takes too much time, the membership queries time out.
Azure SQL Server has a fairly low concurrent connection limit.
Or had at least...
Sanjeev M
@zeus82
ah - ok, I'll take a coredump now
Sanjeev M
@zeus82
hmmm - ok, I'll also change my provider to be what you suggested.
Veikko Eeva
@veikkoeeva
I'll be off now, fairly late here. But I think you are knowledgeable enough to do something about this. I'm just dumping ideas here to poke around. :)
Sanjeev M
@zeus82
cool - thanks, I'll do some digging tonight
Tom Rathbone
@chillitom
quick nooby question.. if I want call a method on a another grain and not await it can I use .ContinueWith(...) to get a notification on the grain's thread when the task completes?
Tom Rathbone
@chillitom
answered my own question by trying it out.. answer.. yes you can.
吃了会中毒
@GaLeGayGay
hello everyone
When I first register an event via Stream on the client side. This error occurs.
I have consulted the relevant documentation. I have checked the documentation and searched git and Google for the relevant information with no luck. Where do I go to solve this problem?
System.NullReferenceException: Object reference not set to an instance of an object.
at Orleans.Internal.OrleansTaskExtentions.<ToTypedTask>g__ConvertAsync|4_0T
at Orleans.Streams.StreamPubSubImpl.GetAllSubscriptions(StreamId streamId, IStreamConsumerExtension streamConsumer)
at Orleans.Streams.StreamConsumer`1.GetAllSubscriptions()
image.png
吃了会中毒
@GaLeGayGay
Sorry ,Not very good with gitter
My Client Code
        Client = new ClientBuilder()
            .UseCosmosDBGatewayListProvider(options =>
            {
                options.AccountEndpoint = "---";
                options.AccountKey = "---";
            })
            .Configure<ClusterOptions>(options =>
            {
                options.ClusterId = "Test1";
                options.ServiceId = "HelloWorld";
            })
            .Configure<GatewayOptions>(d => d.GatewayListRefreshPeriod = TimeSpan.FromSeconds(5))
            .ConfigureLogging(logging => logging.AddConsole())
            .AddSimpleMessageStreamProvider(Constants.GuildInfoStreamProvider)
            .Build();
Register Code
        var guildProvider = actorComponent.Client.GetStreamProvider(Constants.GuildInfoStreamProvider);

        var guildChanged = guildProvider.GetStream<PlayerGuildChangedMsg>(Guid.Empty, info.id);
        var guildChangedSubEvent = await guildChanged.SubscribeAsync((msg, token) => GuildChangedCallback(session, msg,db));
Silo Code
        ISiloHostBuilder builder = new SiloHostBuilder()
            .AddCosmosDBGrainStorage("Profile",options =>
            {
                options.Client = DatabaseClient.Core;
                options.CanCreateResources = true;
            })
            .AddCosmosDBGrainStorage("PubSubStore",options =>
            {
                options.Client = DatabaseClient.Core;
            })
            .UseCosmosDBMembership(options =>
            {
                options.Client = DatabaseClient.Core;
                options.CanCreateResources = true;
            })
            .Configure<ClusterOptions>(options =>
            {
                options.ClusterId = "Test1";
                options.ServiceId = "HelloWorld";
            })
            .Configure<EndpointOptions>(options =>
            {
                options.AdvertisedIPAddress = IPAddress.Loopback;
                options.SiloPort = siloPort;
                options.GatewayPort = gatewayPort;
            })
            .ConfigureServices(collection =>
            {
                collection.AddSingleton(DatabaseClient);
            })
            .AddSimpleMessageStreamProvider(Constants.GuildInfoStreamProvider)
            .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(StateCode).Assembly).WithReferences())
            .ConfigureLogging(logging => logging.AddConsole());
The error occurs when I use GetAllSubscriptionHandles. But calling SubscribeAsync also throws an error that there is no instance
吃了会中毒
@GaLeGayGay
this is msg code
public class PlayerGuildChangedMsg
{
    public long GuildId;
}
Mickael Lamare
@Mickael-Lamare
@GaLeGayGay isn't it because it misses 'AddMemoryGrainStorage("PubSubStore")' on silo configuration?
吃了会中毒
@GaLeGayGay
@Mickael-Lamare I am using CosmosDB to store
Tom Rathbone
@chillitom
any way to turn off the HTTP access log messages in the logs of the OrleansDashboard?
Sanjeev M
@zeus82
Reuben, Veikko, sorry for the delayed update, but I took a core dump, but VS was throwing an error when I tried looking at it... I'll investigate more over the weekend. I also change the SQL client to what you suggested.