Selaa lähdekoodia

HPCC-14336 Epoll assert for event on already removed fd

Signed-off-by: Mark Kelly <mark.kelly@lexisnexis.com>
Mark Kelly 9 vuotta sitten
vanhempi
commit
978f1810eb
1 muutettua tiedostoa jossa 6 lisäystä ja 1 poistoa
  1. 6 1
      system/jlib/jsocket.cpp

+ 6 - 1
system/jlib/jsocket.cpp

@@ -4646,7 +4646,12 @@ public:
                             }
 # endif
                             if (epevents[j].data.fd >= 0) {
-                                assertex(epfdtbl[epevents[j].data.fd] >= 0);
+                                // assertex(epfdtbl[epevents[j].data.fd] >= 0);
+                                if (epfdtbl[epevents[j].data.fd] < 0)
+                                {
+                                    WARNLOG("epoll event for invalid fd: index = %d, fd = %d, eventmask = %u", j, epevents[j].data.fd, epevents[j].events);
+                                    continue;
+                                }
                                 SelectItem *epsi = items.getArray(epfdtbl[epevents[j].data.fd]);
                                 if (!epsi->del) {
                                     unsigned int ep_mode = 0;