8000 Removing BuildAction table and related elements. by bruntib · Pull Request #709 · Ericsson/codechecker · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Removing BuildAction table and related elements. #709

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 19, 2017

Conversation

bruntib
Copy link
Contributor
@bruntib bruntib commented Jul 6, 2017

In this commit the BuildAction is removed as a concept. This also means
that update mode doesn't work any more, because a report is connected to
a run instead of the build action. If a report is already found in the
run then it won't be updated, but skipped. Later in this case the
detection status of the report will be updated.

@Xazax-hun
Copy link
Contributor 8000

I was wondering why are we removing the BuildAction?
Ok, I do remember, we will have a different design for the update mode, which makes the schema simpler (at the cost of managing the state on the disk in form of plists.)

But the BuildAction (which should be named AnalysisAction in the first place) contains other useful information like how long did a certain action take? What was the command? We can use this information for diagnosing performance problems or rerunning actions in debug mode for additional diagnostics.

So my question is, do we loose these functionalities with this change, or are they going to work after this change just using information from other sources?

@gyorb
Copy link
Contributor
gyorb commented Jul 7, 2017

With the current database change/cleanup we will loose some of the debug functionality which was based on the data in the database.
We are splitting up the analysis process to log/analyze/store.
With this setup the failed analysis and build information should be handled at the analyze step and store will handle only the storage of the produced reports.

There is already some improvement in the error handling during analysis #679

self.buildaction.analyzer_type,
source_file_name)

assert self.analyzer_returncode == 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure that this piece of error checking is related to build action handling?

@@ -45,104 +45,6 @@ class CheckerReportHandler(object):
information to the database.
"""

def __sequence_deleter(self, table, first_id):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure you do not need this? To delete the path of bug reports.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bug path representation also changes: instead of linked list we are ordering by an enumeration column, so no sequence deleter is needed.

@bruntib bruntib force-pushed the remove_buildaction_table branch 2 times, most recently from 5e89230 to 288e129 Compare July 11, 2017 20:38
@dkrupp dkrupp added this to the 6.0 pre1 milestone Jul 12, 2017
@bruntib bruntib force-pushed the remove_buildaction_table branch from 288e129 to edeb4b6 Compare July 13, 2017 13:01
@bruntib bruntib mentioned this pull request Jul 13, 2017
Copy link
Member
@dkrupp dkrupp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-In general I am missing the documentation for the storage API functions. Please add, especially now, when the concepts are changed.

-rebase this patch to codechekcer 5.9

@@ -52,16 +52,8 @@ service CheckerReport {

// The next few following functions must be called via the same connection.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still valid?

I mean do we really want to handle storage transactions (storage of reports belonging to the same run instance) based on connections? What if a connection is breaks down due to network error? Will the run under being updated be broken too?

Wouldn't it be more safe to handle transactions independently of connections?
Something like:

i64 openStorageTransaction(run_id) //returns a run storage transaction id
addReport(...)
addReport(...)
closeStorageTransaction(i64 storage_transaction_id)

when the closeTransaction is called, we set the status of the reports that were not present in the session would be set to resolved.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be the issue of #724.

In this commit the BuildAction is removed as a concept. This also means
that update mode doesn't work any more, because a report is connected to
a run instead of the build action. If a report is already found in the
run then it won't be updated, but skipped. Later in this case the
detection status of the report will be updated.
@bruntib bruntib force-pushed the remove_buildaction_table branch from edeb4b6 to c0bdb0a Compare July 17, 2017 16:26
@dkrupp dkrupp merged commit 53c6c9f into Ericsson:version6 Jul 19, 2017
@bruntib bruntib deleted the remove_buildaction_table branch July 19, 2017 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0