Hi,
I have been working on a POC using the Ignite v1.9 C# client and have been simulating clusters of Ignite nodes by running collections of Ignite processes on the same physical machine. As a part of this I am running 4 Ignite nodes (where each node is a windows forms application for simplicity so you can see when it is running) that each creates four caches: two are replicated and two and partitioned. The partitioned caches each use an affinity map that uses a command line argument containing the index to map the node into the affinity map (the argument is placed into a user attribute registered with the call to start the Ignite node). The affinity map function maps all available nodes into the returned map meaning that partial affinity maps are returned until all 4 ignite nodes have initialised. I have a batch file that runs all four nodes simultaneously. Typically, only one to three of the windows apps are observed to appear, and often one of the processes is absent from the task monitor in Windows. If one of the running apps is closed the missing service becomes available. From my logging I often see only one Ignite process reporting calls into IAffinityFunction::AssignPartitions that is typically called only twice, when I expected it to be called four times as each new node comes on line. On rare occasions all four nodes will correctly initialise, but this is an exception. I don’t have a small reproducer case yet but I wanted to first ask if this deadlock or race condition behaviour is known in Ignite with respect to partitioned caches with affinity maps. Thanks, Raymond.
