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

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.