siis / ic3

IC3: Inter-Component Communication Analysis in Android
http://siis.cse.psu.edu/ic3/
Apache License 2.0
36 stars 21 forks source link

Reason for using a hardcoded database name "cc" #4

Closed vitaliiavdiienko closed 9 years ago

vitaliiavdiienko commented 9 years ago

Hi Damien,

i see from your code that there is a way to configure DB access through *.properties file.

What is the reason to use a hardcoded and predefined name for the database ("cc" in your case)? Can you extract it to *.properties file also?

I am asking because I want to run different instances of IC3 at the same time in a full isolation and, thus, want to use different databases for each instance.

Thanks in advance.

Best Regards, Vitalii

docteau commented 9 years ago

Hi Vitalii,

I agree that the database name should be part of the *.properties file. It will be added to the next version (or I can also accept a pull request for it).

I'm not entirely sure what you mean by "full isolation", but I have myself used concurrent instances of IC3 to populate the database. Even though I am not using transactions (which are also a desired feature), it usually works fine, as different instances do not write "incompatible" data to the database. The only exception is with the *Strings tables, which should contain only one of each string. In this case, for example if two instances of IC3 attempt to store action string "android.intent.action.MAIN" at the same time, then you might run into problems.

Best, Damien

vitaliiavdiienko commented 9 years ago

Hi Damien,

the problem can appear if you test multiple versions of the same app. Can I then somehow determine which info from DB relates to which version of app?

Thanks.

Best Regards, Vitalii

docteau commented 9 years ago

Hi Vitalii,

Could you tell me more about the problem you’re seeing (error message, etc.)?

Thanks, Damien

vitaliiavdiienko commented 9 years ago

Hi Damien,

right now I don't see any problems aside from the fact that IccTA hangs for a while on start if a database contains a lot of items. Thus, full isolation should solve my problem.