我要评分
获取效率
正确性
完整性
易理解

Failed to Start the HTCondor Service on the Kunpeng 920

Symptom

The HTCondor service failed to start on the Kunpeng 920.

Key Process and Cause Analysis

None

Conclusion and Solution

  1. Modify the daemon_core.cpp file.
    1. Open the daemon_core.cpp file.

      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 settings and exit.