You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the following is invoked from host 1, execution on both hosts hang, although both kernels are still responsive. Host 0 (remote host) complains of a recursive fault. Then when ps -aux is invoked on host 1, the host 1 kernel panic occurs.
The failure is because popcorn does not support remote thread creation. It would be best to catch remote thread creation sooner and fail more gently.
Triggering code:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include "migrate.h"
#define NUM_THREADS 2
int data[NUM_THREADS];
void *do_it(void *t)
{
int ret = 0;
long long i = (long long)t;
data[i] = 10;
pthread_exit (&ret);
}
int
main (int argc, char *argv[])
{
long long i;
pthread_t threads[NUM_THREADS];
migrate(0, NULL, NULL);
for (i = 0; i < NUM_THREADS; i++)
{
pthread_create(&threads[i], NULL, do_it, (void *)i);
}
for (i = 0; i < NUM_THREADS; i++)
{
int status = 0;
pthread_join (threads[i], (void **) &status);
}
migrate(1, NULL, NULL);
printf ("%d\n", data[0]);
return data[0];
}
bxatnarf
changed the title
[upstream] execution hung on both nodes due to recursive fault on remote
remote thread creation needs to fail more gently
Apr 13, 2020
When the following is invoked from host 1, execution on both hosts hang, although both kernels are still responsive. Host 0 (remote host) complains of a recursive fault. Then when
ps -aux
is invoked on host 1, the host 1 kernel panic occurs.The failure is because popcorn does not support remote thread creation. It would be best to catch remote thread creation sooner and fail more gently.
Triggering code:
Log on host 0
Log on host 1 after program has hung bug before
ps aux
is invoked aAdditional log on host 1 after
ps aux
is invoked and then segfaultsThe text was updated successfully, but these errors were encountered: