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

Reply via email to