o
    $i                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZmZ eeZedkrejdd Zeje ZdZdZeD ]Zeer`eeed ZqQedurlejeZn	d dlmZ e Zejedd	 d
Z ed Z!e"e!ej#ej$B ej%B Z&e 'e&e j( ej)ej*e+e dgeddZ,da-da.dZ/dd Z0dddZ1e	j2e1dd3  z3dd Z4eej5e4 dd Z6eej7e6 	 ze,8 Z9W n
 e:y   Y nw qe0  e;e9 W dS  e<y   e0   w dS )    N)SIGTERM_GRACE_PERIOD_SECONDS) RAY_ON_SPARK_COLLECT_LOG_TO_PATH!RAY_ON_SPARK_START_RAY_PARENT_PID__main__   z--temp-dir=)_get_default_ray_tmp_dirTexist_okrayz.lockstart)textF   c               
   C   s  t r	tt d S da zzttd  t d u rt  t	t
tj zt	t
tjtjB  d} W n ty>   d} Y nw | rtrzEtjt}|dkrY|dtt   }tjt|d }tj|dd tj|t }ttjtd}ttj|d	| W n ty } ztd
t| d W Y d }~nd }~ww tj tdd W n	 ty   Y nw W t	t
tj t!t
 d S W t	t
tj t!t
 d S t	t
tj t!t
 w )NT      ?Fr
   z-global-z-logsr   session_latestlogsz5Collect logs to destination directory failed, error: .)ignore_errors)"exit_handler_executedtimesleepON_EXIT_HANDLER_WAIT_TIMEr   processpollkillfcntlflocklock_fdLOCK_UNLOCK_EXLOCK_NBBlockingIOErrorcollect_log_to_pathospathbasenametemp_dirintjoinmakedirssocketgethostnamereadlinkshutilcopytree	Exception_loggerwarningreprrmtreeclose)lock_acquiredlog_dir_prefixbase_dircopy_log_dest_pathray_session_dire r:   Z/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ray/util/spark/start_ray_node.pyon_exit_handlerP   st   
r<   returnc                  C   s2   t tjt } 	 td t | krt  d S q)NTr   )r&   r"   environr   r   r   getppidsigterm_handler)orig_parent_pidr:   r:   r;   check_parent_alive   s   
rB   )targetdaemonc                  G   s   d S )Nr:   argsr:   r:   r;   sighup_handler   s   rG   c                  G   s0   t sda t  t  ntt td d S )NT   )	sigterm_handler_executedr   	terminater<   r   r   r   r"   _exitrE   r:   r:   r;   r@      s   
r@   )r=   N)=r   loggingos.pathr"   r,   signalr)   
subprocesssys	threadingr   ray._private.ray_process_reaperr   ray.util.spark.cluster_initr   r   	getLogger__name__r/   argvarg_listr>   r!   temp_dir_arg_prefixr%   arg
startswithlenr#   normpathr   r(   ray_cli_cmd	lock_fileopenO_RDWRO_CREATO_TRUNCr   r   LOCK_SHPopen
executablewhichr   r   rI   r   r<   rB   Threadr   rG   SIGHUPr@   SIGTERMwaitret_codeKeyboardInterruptexitr.   r:   r:   r:   r;   <module>   s|    



N
	 