Rate This Document
Findability
Accuracy
Completeness
Readability

Failed to Start the HTCondor Service on the Kunpeng 920

Symptom

HTCondor service failed to start on the Kunpeng 920.

Procedure

  1. Modify the daemon_core.cpp file.
    1. Open daemon_core.cpp.
      vi condor-8.9.2/src/condor_daemon_core.V6/daemon_core.cpp
    2. Press i to enter the insert mode and modify lines 5856 to 5880 as follows:
      if( daemonCore->UseCloneToCreateProcesses() ) {
      dprintf(D_FULLDEBUG,"Create_Process: using fast clone() "
      "to create child process.\n");
      
      // The stack size must be big enough for everything that
      // happens in CreateProcessForkit::clone_fn().  In some
      // environments, some extra steps may need to be taken to
      // make a stack on the heap (to mark it as executable), so
      // we just do it using the parent's stack space and we use
      // CLONE_VFORK to ensure the child is done with the stack
      // before the parent throws it away.
      //const int stack_size = 16384;
      const int stack_size = 64*1024*2;
      //const int stack_size = 64*1024*16;
      char child_stack[stack_size]  ;
      
      // Beginning of stack is at end on all processors that run
      // Linux, except for HP PA.  Here we just detect at run-time
      // which way it goes.
      char *child_stack_ptr = child_stack;
      if( stack_direction() == STACK_GROWS_DOWN ) {
      child_stack_ptr += stack_size;
      }
      child_stack_ptr = (char *)((std::uintptr_t)child_stack_ptr & ~(std::uintptr_t)0<<4);
    3. Press Esc, type :wq!, and press Enter to save the file and exit.