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

AttributeError: 'module' object has no attribute 'InvalidPersistentRequest' #1

Open
mquinson opened this issue May 27, 2021 · 1 comment

Comments

@mquinson
Copy link
Contributor

Hello,

The following program raises an error in Aislinn:

#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>

#define buff_size 128

int main(int argc, char **argv) {
  int nprocs = -1;
  int rank = -1;

  MPI_Init(&argc, &argv);
  MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  printf("Hello from rank %d \n", rank);

  if (nprocs < 2)
    printf("MBI ERROR: This test needs at least 2 processes to produce a bug!\n");

  int dest = (rank == nprocs - 1) ? (0) : (rank + 1);
  int src = (rank == 0) ? (nprocs - 1) : (rank - 1); 

  int buf1[buff_size]; MPI_Request req1;
  int buf2[buff_size]; MPI_Request req2;
  MPI_Send_init(buf1, buff_size, MPI_INT, dest, 0, MPI_COMM_WORLD, &req1);
  MPI_Start(&req1);
  MPI_Irecv(buf2, buff_size, MPI_INT, src, 0, MPI_COMM_WORLD, &req2); 
  
	 /* MISSING: MPI_Wait(&req1, MPI_STATUS_IGNORE); */ 
	 MPI_Wait(&req2, MPI_STATUS_IGNORE);  
	MPI_Request_free(&req1);
	MPI_Request_free(&req2);

  MPI_Finalize();
  printf("Rank %d finished normally\n", rank);
  return 0;
}

Here is the output of Aislinn in this case:

 $ aislinn -p=2 MissingWait_Send_init_Irecv_nok
==AN== INFO: Aislinn v0.5.0
Traceback (most recent call last):
  File "/builds/quinson/mbi2/tools/aislinn-git/bin/../src/aislinn/aislinn.py", line 359, in <module>
    main()
  File "/builds/quinson/mbi2/tools/aislinn-git/bin/../src/aislinn/aislinn.py", line 315, in main
    if not generator.run():
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/generator.py", line 195, in run
    self.main_cycle()
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/generator.py", line 184, in main_cycle
    context.process_run_result(c.finish_async())
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/context.py", line 150, in process_run_result
    if self.handle_call(result[1], result[2:]):
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/context.py", line 123, in handle_call
    return call.run(self, args)
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/mpicalls.py", line 921, in run
    for i in xrange(len(args))])
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/mpicalls.py", line 240, in MPI_Request_free
    request = check.check_persistent_request(context, request_id, False, 1)
  File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/check.py", line 166, in check_persistent_request
    context.add_error_and_throw(errormsg.InvalidPersistentRequest(
AttributeError: 'module' object has no attribute 'InvalidPersistentRequest'

Thanks for this tool,
Mt

@spirali
Copy link
Owner

spirali commented May 28, 2021

Thank you for your bug reports.

I will try to fix them; however, I need to first migrate Aislinn code on a newer Valgrind so I can run it with my current gcc, and it may take me some time.

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

2 participants