Before Junos 16.1, precision timers is implemented as a separate pthread in RPD to handle only this functionality (precision timers). In Junos 16.1 and higher, the pthread is supplanted by the pthread 'BGP I/O'. This is done as part of RPD modularity. This pthread is enabled automatically in any logical-system that is active in the router.
Version 16.1 introduced 'BGP threaded I/O'. This accounts for a significant change in the architecture on how we manage 'BGP I/O', including the keepalives previously managed by the precision timer feature.
Because of the change, the 'pthread' that was generated before when precision timers was active, is not longer displayed in the output even if precision-timer is explicitly configured. Instead, what you are going to see is the new 'BGP IO'.
Below is the current output with version 16.1 or later where we can see 'BGP IO':
labroot@Router# run show task | match bgp
40 BgpEgressPeeringTE <LowPrio>
40 BGP_RT_Background <LowPrio>
40 bgpio-0
40 bgp-thrio
40 BGP addpath task
40 BGP_Listen.::+179 179 94 <Accept LowPrio WriteDisable>
40 BGP_Listen.0.0.0.0+179 179 93 <Accept LowPrio WriteDisable>
50 BGP_60.2.2.2.2+60733 60733 96 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_main-logical <LowPrio>
50 BGP_10458_69.192.168.69.71+179 179 92 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_external <LowPrio>
40 BGP_10458_69.192.168.69.71+179 92 <WriteDisable> {bgpio-0-th}
40 BGP_60.2.2.2.2+60733 96 <WriteDisable> {bgpio-0-th}
40 bgpio-0-th {bgpio-0-th} <<< new pthread
Prior to 16.1, it is supposed to see PthreadTimer and <Pt> flags when configuring BGP precision-timer:
user@router> show task
Pri Task Name Pro Port So Flags
40 BGP_Listen.::+179 179 61 <Accept LowPrio>
40 BGP_Listen.0.0.0.0+179 179 60 <Accept LowPrio PthreadTimer>
user@router> show task timers task-name BGP_Listen
Timer Name Expires Jitter Interval Flags
BGP_Listen.0.0.0.0+179_Task parent
BGP_Listen.0.0.0.0+179_Keepalive 24.106 30 <Pt>
BGP_Listen.0.0.0.0+179_Keepalive 20.473 30 <Pt
This is not an error, rather a change in the architecture of RPD. Precision timers is no longer required, since this will be active by default.