Thank you Harmut, I will report the bug. But so this means that the only way to use my function remotely is to get rid of all possible stack allocations?
Or is there any setting/parameter of hpx to ask for more space in the stack? Thank you, Steve > On Oct 8, 2017, at 9:33 AM, Hartmut Kaiser <[email protected]> wrote: > > Just making sure you receive this response, Steve... > > Regards Hartmut > --------------- > http://boost-spirit.com > http://stellar.cct.lsu.edu > > >> -----Original Message----- >> From: Hartmut Kaiser [mailto:[email protected]] >> Sent: Sunday, October 8, 2017 9:33 AM >> To: '[email protected]' <[email protected]> >> Subject: RE: [hpx-users] thread_stacksize_large for HPX_PLAIN_ACTION not >> working? >> >> Steve, >> >>> After long debugging of my code I’ve found that calling hex::async on an >>> Actions that allocates some data in the stack results in SEG_FAULT. The >>> same is not true if I use simple (local) function calls. >> >> I think that we don't send the executor over the wire, they probably will >> not work even for local invocations of actions. >> This is clearly a bug (i.e. missing implementation). Would you mind >> opening a ticket and attach a smallest possible self-contained test case? >> >> Thanks! >> Regards Hartmut >> --------------- >> http://boost-spirit.com >> http://stellar.cct.lsu.edu >> >> >>> >>> Here is my code: >>> >>> ——————————— >>> >>> int test(){ >>> char filename[64*1024]; >>> >>> printf("DONE\n"); >>> return 0; >>> >>> } >>> >>> HPX_PLAIN_ACTION(testio) >>> >>> int hpx_main(boost::program_options::variables_map& vm) >>> { >>> hpx::parallel::execution::default_executor fancy_executor( >>> hpx::threads::thread_priority_high, >>> hpx::threads::thread_stacksize_large); >>> >>> testio_action act; >>> hpx::future<int> out = hpx::async(fancy_executor, act, >>> hpx::find_here()); >>> >>> out.get(); >>> >>> return hpx::finalize(); >>> } >>> ——————————— >>> >>> This code results in a SEG_FAULT in test(). >>> >>> Instead if I use the same function test() as a local call with: >>> hpx::future<int> out = hpx::async(fancy_executor, &testio); >>> >>> Works correctly. >>> >>> What is going wrong using the Action? Should I add any settings to my >>> executor or to HPX to tell that my actions require a bit more stack >>> allocation? >>> >>> Thank you, >>> Steve >>> >>> >>> >>> >>> _______________________________________________ >>> hpx-users mailing list >>> [email protected] >>> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users > _______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
