o
    iD                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ dZeeZee   dZdZG dd deZe ZdS )    N)
has_forked)SharedStringFile)
get_logger)manager)Payload)
RCCallback)remoteconfig_poller)get_ancestor_runtime_id)SymbolDatabaseUploaderzdynamic-instrumentationz-symdb-pids   c                   @   s(   e Zd ZdZdeje ddfddZdS )SymbolDatabaseCallbackz6Remote config callback for symbol database management.payloadsreturnNc              	   C   s  t  X}tt  }tt | }vrt || t dur$t	 s2t
||tt h tkrUtdt  td td t rLt  	 W d   dS W d   n1 s_w   Y  |D ]}|jdu rnqf|j}t|tswqf|d}|du rqf|rtdt  t sztjtt d tdt  W  dS  ty   tjdt d	d
 td td Y  dS w t    dS tdt  t r
zt  tdt  W  dS  ty	   tjdt d	d
 td td Y  dS w  dS dS )zProcess symbol database configuration payloads.

        Args:
            payloads: Sequence of configuration payloads to process
        Nz4[PID %d] SymDB: Disabling Symbol DB in child processLIVE_DEBUGGING_SYMBOL_DBupload_symbolsz8[PID %d] SymDB: Symbol DB RCM enablement signal received)shallowz,[PID %d] SymDB: Symbol DB uploader installedz4[PID %d] SymDB: Failed to install Symbol DB uploaderT)exc_infoz6[PID %d] SymDB: Symbol DB RCM shutdown signal receivedz.[PID %d] SymDB: Symbol DB uploader uninstalledz6[PID %d] SymDB: Failed to uninstall Symbol DB uploader)!shared_pid_filelock_exclusivestrosgetpidsetpeekall_unlockedput_unlockedr	   r   lengetppidMAX_CHILD_UPLOADERSlogdebugr   unregister_callbackdisable_productr
   is_installed	uninstallmetadatacontent
isinstancedictgetinstallproduct_manager
is_enabledDI_PRODUCT_KEY	Exceptionerrorupdate)selfr   fpidpidspayloadconfigr    r6   [/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/symbol_db/remoteconfig.py__call__   sn   
"







zSymbolDatabaseCallback.__call__)__name__
__module____qualname____doc__tSequencer   r8   r6   r6   r6   r7   r      s    r   )r   typingr=   ddtrace.internal.forksafer   ddtrace.internal.ipcr   ddtrace.internal.loggerr   ddtrace.internal.productsr   r*   ddtrace.internal.remoteconfigr   r   $ddtrace.internal.remoteconfig.workerr   ddtrace.internal.runtimer	   "ddtrace.internal.symbol_db.symbolsr
   r,   r9   r   r   r   r   r   _rc_callbackr6   r6   r6   r7   <module>   s"    
E