Thanks, Cristi, that's a very good idea.  I added this and applied the 
patch in 110329.

Best,
Cristian

On 05/08/10 10:57, Cristian Zamfir wrote:
> Hi Cristi,
>
> Indeed, if we call klee_error instead of klee_warning, there is no point in 
> calling it from everywhere. I didn't test, but the patch looks fine.
> Since several people ran into this problem, perhaps it is better to also say 
> in the message to klee_error something like "try to increase your file 
> descriptors limit".
>
> Cristi
>
> On Aug 5, 2010, at 11:39 AM, Cristian Cadar wrote:
>
>>
>> Hi Cristi,
>>
>> That's a rather minor thing, but instead of having all the callers of 
>> openTestFile (and openOutputFile) call klee_error or assert, I would just 
>> call klee_error directly in openOutputFile.  Let me know if you see any 
>> problems in the attached patch.
>>
>> Thanks,
>> Cristian
>>
>>
>> On 25/07/10 21:09, Cristian Zamfir wrote:
>>> Thanks for noticing. I updated it.
>>>
>>> Cristi
>>
>> On Jul 25, 2010, at 9:48 PM, heechul Yun wrote:
>>
>>>> I think there is a mistake.
>>>> Please see the red lines of your patch.
>>>>
>>>>       if (WriteTestInfo) {
>>>>         double elapsed_time = util::getWallTime() - start_time;
>>>>         std::ostream *f = openTestFile("info", id);
>>>>        if(f) {
>>>>    *f<<  "Time to generate test case:"
>>>>    <<  elapsed_time<<  "s\n";
>>>>    delete f;
>>>>        }
>>>>      } else {
>>>>        klee_error("unable to open output test case .info file");
>>>>      }
>>>>     }
>>>>   }
>>>>
>>>> I think the correct code should be the following
>>>>
>>>>       if (WriteTestInfo) {
>>>>         double elapsed_time = util::getWallTime() - start_time;
>>>>         std::ostream *f = openTestFile("info", id);
>>>>        if(f) {
>>>>    *f<<  "Time to generate test case:"
>>>>    <<  elapsed_time<<  "s\n";
>>>>    delete f;
>>>>        } else {
>>>>          klee_error("unable to open output test case .info file");
>>>>        }
>>>>     }
>>>>
>>>>
>>>> Best
>>>>
>>>> Heechul
>>>>
>>>>
>>>> On Sun, Jul 25, 2010 at 2:41 PM, Cristian Zamfir<cristian.zamfir at 
>>>> epfl.ch>  wrote:
>>>>
>>>> Hi Cristi,
>>>>
>>>> You are right, I doubt that the reasons for running out of fds are 
>>>> transient, so it is better to stop. I modified the patch.
>>>>
>>>>
>>>>
>>>> Cristi
>>>>
>>>>
>>>> On Jul 16, 2010, at 8:19 PM, Cristian Cadar wrote:
>>>>
>>>>>>
>>>>>> Hi Cristi,
>>>>>>
>>>>>> That's a good patch.  I'm just wondering if there's really any benefit 
>>>>>> of continuing execution once KLEE runs out of file descriptors.  That 
>>>>>> is, we could instead just call klee_error instead of klee_warning in 
>>>>>> openOutputFile.
>>>>>>
>>>>>> Best,
>>>>>> Cristian
>>>>>>
>>>>>> On 16/07/10 17:04, Cristian Zamfir wrote:
>>>>>>>> This happens when Klee runs out of file descriptors. You can avoid it 
>>>>>>>> by increasing the number of file descriptors using ulimit.
>>>>>>>>
>>>>>>>> The crash happens because callers of openTestFile do not check if the 
>>>>>>>> return is NULL.
>>>>>>>> We encountered this problem before. The attached patch should fix it, 
>>>>>>>> in the sense that it avoids crashing and prints a warning instead. If 
>>>>>>>> it is ok, I can commit it.
>>>>>>>>
>>>>>>>> Cristi
>>>>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Heechul
>> <openOutputFile.patch>
>

Reply via email to