Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:15:24Zhttps://gitlab.torproject.org/legacy/trac/-/issues/23790rend_service_prune_list_impl_() doesn't copy over desc_is_dirty when copying ...2020-06-13T15:15:24ZTracrend_service_prune_list_impl_() doesn't copy over desc_is_dirty when copying intro pointsIn `rend_service_prune_list_impl_(void)` (src/or/rendservice.c), the introduction points are copied over from the old to new `rend_service_t`:
```
smartlist_add_all(new->intro_nodes, old->intro_nodes);
```
but, the `desc_is_dirty` fiel...In `rend_service_prune_list_impl_(void)` (src/or/rendservice.c), the introduction points are copied over from the old to new `rend_service_t`:
```
smartlist_add_all(new->intro_nodes, old->intro_nodes);
```
but, the `desc_is_dirty` field is not copied over.
If a reload occurs between after a hidden service is added, but before its descriptor is published for the first time (triggered via `desc_is_dirty`), it will not publish its first descriptor until:
```
rendinitialpostdelay + crypto_rand_int(2*rendpostperiod)
```
It looks like it's simply missing `new->desc_is_dirty = old->desc_is_dirty;` prior to copying of introduction points.
**Trac**:
**Username**: jlTor: 0.2.9.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.org