Steve, > Thank you Harmut, I will report the bug.
Thanks! > 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? You can increase the stack-size globally. I'd suggest to change the code in question to not allocate large chunks of memory on the stack, though. You can pass -Ihpx.stacks.small_size=0x20000 or similar on the command line (0x8000 is the default). HTH Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu > > 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
