Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692021-11-30T14:55:40ZOpen-Source Projects
Redmine Klever - Bug #11019 (Closed): Can't create new tags with 3d nesting levelhttps://forge.ispras.ru/issues/110192021-11-30T14:55:40ZAnton Vasilyevvasilyev@ispras.ru
<p>Warning "Tag name can't contains '-'" is thrown on creation of 3d nesting level tag.<br />Probably symbol '-' is taken from parent like "API models - Linux kernel".</p> C Instrumentation Framework - Bug #10871 (Closed): Incorrect line directives on struct with unionhttps://forge.ispras.ru/issues/108712021-06-30T12:10:22ZAnton Vasilyevvasilyev@ispras.ru
<p>Incorrect line directives on struct with union<br />struct fxregs_state is located from line 34 in /arch/x86/include/asm/fpu/types.h,<br />but produced cil file has wrong line 27</p>
<p>Problem could be reproduced on linux-5.12-rc3 drivers/usb/serial/ipw.ko</p> Klever - Bug #9393 (Rejected): Problem with memleak visualization on absent return from void func...https://forge.ispras.ru/issues/93932018-11-20T10:57:28ZAnton Vasilyevvasilyev@ispras.ru
<p>For void functions with absent return:<br /><pre><code class="c syntaxhl" data-language="c"><span class="cm">/*
* Use the Fisher-Yates shuffle algorithm on an array of lines.
*/</span>
<span class="k">static</span> <span class="kt">void</span> <span class="nf">shuffle_lines</span><span class="p">(</span><span class="kt">char</span> <span class="o">**</span><span class="n">lines</span><span class="p">,</span> <span class="kt">unsigned</span> <span class="n">numlines</span><span class="p">)</span>
<span class="p">{</span>
<span class="kt">unsigned</span> <span class="n">i</span><span class="p">;</span>
<span class="kt">unsigned</span> <span class="n">r</span><span class="p">;</span>
<span class="kt">char</span> <span class="o">*</span><span class="n">tmp</span><span class="p">;</span>
<span class="n">srand</span><span class="p">(</span><span class="n">monotonic_us</span><span class="p">());</span>
<span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="n">numlines</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">></span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span>
<span class="n">r</span> <span class="o">=</span> <span class="n">rand</span><span class="p">();</span>
<span class="cm">/* RAND_MAX can be as small as 32767 */</span>
<span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">></span> <span class="n">RAND_MAX</span><span class="p">)</span>
<span class="n">r</span> <span class="o">^=</span> <span class="n">rand</span><span class="p">()</span> <span class="o"><<</span> <span class="mi">15</span><span class="p">;</span>
<span class="n">r</span> <span class="o">%=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<span class="n">lines</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="n">r</span><span class="p">];</span>
<span class="n">lines</span><span class="p">[</span><span class="n">r</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmp</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></p>
<p>SMG generates warning edge without source code like:<br /><pre><code class="xml syntaxhl" data-language="xml"> <span class="nt"><edge</span> <span class="na">source=</span><span class="s">"A85098"</span> <span class="na">target=</span><span class="s">"A85104"</span><span class="nt">></span>
<span class="nt"><data</span> <span class="na">key=</span><span class="s">"returnFrom"</span><span class="nt">></span>shuffle_lines<span class="nt"></data></span>
<span class="nt"><data</span> <span class="na">key=</span><span class="s">"warning"</span><span class="nt">></span>Memory leak is detected<span class="nt"></data></span>
<span class="nt"></edge></span>
</code></pre></p>
<p>Require to specify Klever and SMG interaction for this corner case.</p> Klever - Bug #9378 (Closed): Wrong assume for ERR_PTR and PTR_ERRhttps://forge.ispras.ru/issues/93782018-11-08T15:24:32ZAnton Vasilyevvasilyev@ispras.ru
<p>Require to provide consistency of ldv_is_err with assumptions at ldv_err_ptr and ldv_ptr_err.</p> Klever - Bug #9130 (Closed): Problems with building Linux 4.18https://forge.ispras.ru/issues/91302018-07-18T15:52:34ZAnton Vasilyevvasilyev@ispras.ru
<p>Require remove wrappers on configure kernel.</p>
<blockquote>
<p>Fixed on branch fix_linux_master_build <a class="changeset" title="Remove usage wrappers for kernel configure" href="https://forge.ispras.ru/projects/klever/repository/331/revisions/56d7b47b4c96c17a446958485f55e4db7315885f">56d7b47b4c</a></p>
</blockquote>
<p>Require add ignoring wrappers option.</p>
<blockquote>
<p>Fixed on branch fix_linux_master_build <a class="changeset" title="Add options for linux master build" href="https://forge.ispras.ru/projects/klever/repository/331/revisions/cec8a34d11ef8651cd5d3c7390533f706a3abfeb">cec8a34d11</a></p>
</blockquote>
<p>Need additional test.</p> Klever - Bug #9082 (Closed): Remove tag does not workhttps://forge.ispras.ru/issues/90822018-07-10T12:52:26ZAnton Vasilyevvasilyev@ispras.ru
<p>Tag remove opens confirmation dialogue,<br />But on "Remove" button of confirmation "Are you sure? All children of the selected tag will be also removed!" it shows "Ajax request error. Maybe connection refused." and doesn't perform tag removal.</p> Klever - Bug #8986 (Closed): Imprecise framebuffer_alloc initializationhttps://forge.ispras.ru/issues/89862018-06-21T18:51:00ZAnton Vasilyevvasilyev@ispras.ru
<p>Corresponding to source code framebuffer_alloc() should initialize info->par.</p>
<p><a class="external" href="http://ldvstore:8998/reports/component/1040963/unsafes/?tag=211">http://ldvstore:8998/reports/component/1040963/unsafes/?tag=211</a></p> Klever - Bug #8985 (Closed): Imprecise framebuffer_alloc initializationhttps://forge.ispras.ru/issues/89852018-06-21T18:50:45ZAnton Vasilyevvasilyev@ispras.ru
<p>Corresponding to source code framebuffer_alloc() should initialize info->par.</p>
<p><a class="external" href="http://ldvstore:8998/reports/component/1040963/unsafes/?tag=211">http://ldvstore:8998/reports/component/1040963/unsafes/?tag=211</a></p> Klever - Bug #8632 (Closed): Upload job archive is restricted while another job is runninghttps://forge.ispras.ru/issues/86322017-12-15T12:51:39ZAnton Vasilyevvasilyev@ispras.ru
<p>I'm trying to upload job archive on instance with one running job and catch error message:<br />"There are jobs in progress right now, uploading may corrupt it results. Please wait until it will be finished."</p>
<p>Does it really necessary to restrict this kind of uploading?</p> Klever - Bug #8302 (Closed): Collapse reports of Cancelled job loses number of taskshttps://forge.ispras.ru/issues/83022017-07-18T14:34:00ZAnton Vasilyevvasilyev@ispras.ru
<p>Cancelled Job doesn't report number of Unsafes, Safes and Unknowns after Collapse reports.<br />Corresponding job and screenshots are attached.</p> Klever - Bug #8275 (Rejected): Broken mark associations aren't properly shownhttps://forge.ispras.ru/issues/82752017-07-05T11:11:48ZAnton Vasilyevvasilyev@ispras.ru
<p>Creation mark for trace <a class="external" href="http://ldvstore:8998/reports/unsafe/1072782/">http://ldvstore:8998/reports/unsafe/1072782/</a> shows change list with several unchanged verdicts (on screen-shot).</p>
<p>Filter shows that mark exist and has 0 similarity, whereas log shows problem with comparison<br /><a class="external" href="http://ldvstore:8998/reports/unsafe/1248789/?view={%22columns%22%3A[%22verdict%22%2C%22similarity%22%2C%22status%22%2C%22source%22%2C%22tags%22%2C%22ass_type%22%2C%22ass_author%22%2C%22description%22]%2C%22similarity%22%3A[%220%22%2C%2250%22%2C%22100%22]}&view_type=10">http://ldvstore:8998/reports/unsafe/1248789/?view={%22columns%22%3A[%22verdict%22%2C%22similarity%22%2C%22status%22%2C%22source%22%2C%22tags%22%2C%22ass_type%22%2C%22ass_author%22%2C%22description%22]%2C%22similarity%22%3A[%220%22%2C%2250%22%2C%22100%22]}&view_type=10</a></p>
<p>The corresponding error:<br /><pre>
[05.Jul.2017 10:15:14] Global initialization edge can't contain enter
Traceback (most recent call last):
File "/var/www/bridge-new/reports/views.py", line 409, in report_unsafe
etv = GetETV(ArchiveFileContent(report, report.error_trace).content.decode('utf8'), request.user)
File "/var/www/bridge-new/reports/etv.py", line 474, in __init__
self.html_trace, self.assumes = self.__html_trace()
File "/var/www/bridge-new/reports/etv.py", line 487, in __html_trace
return self.__add_thread_lines(0, 0)[0:2]
File "/var/www/bridge-new/reports/etv.py", line 505, in __add_thread_lines
parsed_trace.add_line(edge_data)
File "/var/www/bridge-new/reports/etv.py", line 208, in add_line
raise ValueError("Global initialization edge can't contain enter")
ValueError: Global initialization edge can't contain enter
Stack (most recent call last):
File "/usr/local/bin/gunicorn", line 11, in <module>
sys.exit(run())
File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 74, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 192, in run
super(Application, self).run()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 189, in run
self.manage_workers()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 524, in manage_workers
self.spawn_workers()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 590, in spawn_workers
self.spawn_worker()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 557, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/base.py", line 132, in init_process
self.run()
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/sync.py", line 124, in run
self.run_for_one(timeout)
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/sync.py", line 68, in run_for_one
self.accept(listener)
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/sync.py", line 30, in accept
self.handle(listener, client, addr)
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/sync.py", line 135, in handle
self.handle_request(listener, req, client, addr)
File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/sync.py", line 176, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/wsgi.py", line 177, in __call__
response = self.get_response(request)
File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.4/dist-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/var/www/bridge-new/tools/profiling.py", line 133, in wait
res = f(*args, **kwargs)
File "/var/www/bridge-new/reports/views.py", line 411, in report_unsafe
logger.exception(e, stack_info=True)
</pre></p> C Instrumentation Framework - Bug #8259 (Closed): CIF fails on paravirt_write_msr https://forge.ispras.ru/issues/82592017-06-23T15:02:21ZAnton Vasilyevvasilyev@ispras.ru
<p>Exception:</p>
<p>./arch/x86/include/asm/paravirt.h: In function 'paravirt_write_msr':<br />./arch/x86/include/asm/paravirt.h:124:1: warning: LDV: ../../aspectator/gcc/c-family/ldv-convert.c: 4351: expression recursion limit is reached [enabled by default]<br />./arch/x86/include/asm/paravirt.h:124:1: error: LDV: ../../aspectator/gcc/c-family/ldv-convert.c: 4352: tree node 'statement_list' isn't supported</p> Klever - Bug #8258 (Closed): LKVOG crash on module 'drivers/misc/lkdtm.ko'https://forge.ispras.ru/issues/82582017-06-23T13:41:23ZAnton Vasilyevvasilyev@ispras.ru
<p>lkvog crash on build linux-4.11.4 module 'drivers/misc/lkdtm.ko'</p>
<p>[AVODG] Raise exception:<br />Traceback (most recent call last):<br /> File "/home/debian/klever/core/core/components.py", line 116, in run<br /> self.main()<br /> File "/home/debian/klever/core/core/utils.py", line 56, in callbacks_caller<br /> ret = attr(*args, **kwargs)<br /> File "/home/debian/klever/core/core/utils.py", line 54, in callbacks_caller<br /> ret = attr(*args[1:], **kwargs)<br /> File "/home/debian/klever/core/core/lkvog/__init__.py", line 279, in generate_all_verification_obj_descs<br /> self.generate_verification_obj_desc()<br /> File "/home/debian/klever/core/core/utils.py", line 56, in callbacks_caller<br /> ret = attr(*args, **kwargs)<br /> File "/home/debian/klever/core/core/lkvog/__init__.py", line 311, in generate_verification_obj_desc<br /> cc_full_desc_files = self.__find_cc_full_desc_files(module.id)<br /> File "/home/debian/klever/core/core/lkvog/__init__.py", line 450, in <i>find_cc_full_desc_files<br /> cc_full_desc_files.extend(self.__find_cc_full_desc_files(in_file))<br /> File "/home/debian/klever/core/core/lkvog/__init</i>.py", line 436, in <i>find_cc_full_desc_files<br /> out_file_desc = self.linux_kernel_build_cmd_out_file_desc[out_file][-1]<br /> File "<string>", line 2, in _<em>getitem</i><br /> File "/usr/lib/python3.4/multiprocessing/managers.py", line 747, in _callmethod<br /> raise convert_to_error(kind, result)<br />KeyError: 'drivers/misc/lkdtm_rodata_objcopy.o'<br />[ALKBCDP] Stop since some other component(s) likely failed<br />Raise exception:<br />Traceback (most recent call last):<br /> File "/home/debian/klever/core/core/components.py", line 116, in run<br /> self.main()<br /> File "/home/debian/klever/core/core/utils.py", line 56, in callbacks_caller<br /> ret = attr(*args, **kwargs)<br /> File "/home/debian/klever/core/core/lkvog/</em>_init__.py", line 82, in generate_linux_kernel_verification_objects<br /> ('AVODG', self.generate_all_verification_obj_descs))<br /> File "/home/debian/klever/core/core/utils.py", line 56, in callbacks_caller<br /> ret = attr(*args, **kwargs)<br /> File "/home/debian/klever/core/core/components.py", line 257, in launch_subcomponents<br /> p.join(1.0 / len(subcomponent_processes))<br /> File "/home/debian/klever/core/core/utils.py", line 56, in callbacks_caller<br /> ret = attr(*args, **kwargs)<br /> File "/home/debian/klever/core/core/components.py", line 235, in join<br /> raise ComponentError('Component "{0}" failed'.format(self.name))</p> Klever - Bug #7984 (Closed): Visualization shoudn't hide 'note' from analysishttps://forge.ispras.ru/issues/79842017-02-17T10:20:19ZAnton Vasilyevvasilyev@ispras.ru
<p>Edge with note at 464 static struct i2c_driver it913x_driver = ...<br /><a class="external" href="http://ldvstore:8998/reports/unsafe/167682/">http://ldvstore:8998/reports/unsafe/167682/</a></p>
<p>These notes were shown at klever 681261a5434a1e671f9006e0b7a7599bac248760</p> Klever - Bug #7983 (Closed): VTG/ET shouldn't try to remove warning edges with tmp variableshttps://forge.ispras.ru/issues/79832017-02-17T09:58:02ZAnton Vasilyevvasilyev@ispras.ru
<p>Memory problems could occur even on operations which involve temp variables.<br />Example <a class="external" href="http://ldvstore:8998/reports/component/94/293014/">http://ldvstore:8998/reports/component/94/293014/</a><br />Witness is attached.</p>
<p>VTG/ET throws exception:<br /> File "/home/debian/klever/core/core/vtg/et/tmpvars.py", line 139, in __remove_tmp_vars removed_tmp_vars_num_tmp, next_edge = __remove_tmp_vars(error_trace, func_call_edge)<br /> File "/home/debian/klever/core/core/vtg/et/tmpvars.py", line 197, in __remove_tmp_vars error_trace.remove_edge_and_target_node(tmp_var_use_edge)<br /> File "/home/debian/klever/core/core/vtg/et/error_trace.py", line 212, in remove_edge_and_target_node raise ValueError('Cannot delete edge with warning: {!r}'.format(edge['source']))</p>