Mbedtls_ctr_drbg_random() dont return enough data

here is sample code:

  uint8_t random[64];
  ret = mbedtls_ctr_drbg_random(&ctr_drbg, random, sizeof(random));

I want to get 64bytes random number, Usually there is no problem with this code, but if you run this program multiple times, the returned “random” array may only have less than 64 bytes of random data. For example, the “random” array only has 50 bytes of data.

I am under linux, and entropy_source is use the default /dev/urandom which I dont change.