medialoha / mab-lab Goto Github PK
View Code? Open in Web Editor NEWMy ACRA Backend Laboratory
Home Page: http://www.medialoha.net
License: GNU General Public License v3.0
My ACRA Backend Laboratory
Home Page: http://www.medialoha.net
License: GNU General Public License v3.0
In /install/db-install.sql file there an error. In line 12 is:
INSERT INTO mabl_users (user_name, user_password, user_email) VALUES ('admin', MD5('password'), '');
should be:
INSERT INTO %PREFIX%users (user_name, user_password, user_email) VALUES ('admin', MD5('password'), '');
mabl_users -> %PREFIX%users
To speed up query we need to use an integer as a report id.
Hello,
in the database is the column "app_version_code" declared as a float but integer is the right declaration.
See: http://developer.android.com/guide/topics/manifest/manifest-element.html
I use the syntax for Version Code: yyyyMMdd e.g 20131101
In MAB LAB displays as 20131100.
I changed manually the column "app_version_code" from float to integer and it works well.
Hello,
The warning: "Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\webseiten\MAB-LAB-master\pages\issues_milestones.inc.php on line 27". Only when milestones is empty.
The function "fetchMilestones" return a array or null. In "issues_milestones.inc.php" is not tested of null.
I change the line 14 in:
$milesArr = DbHelper::fetchMilestones(($mSelectedAppId>0?MILE_APP_ID.'='.$mSelectedAppId:null));
$milesArr = $milesArr === null ? array() : $milesArr;
When I try to delete (or change status of) a group of bug reports or delete a bug report using an options in detailed view - nothing happens, tough all operations work when I do them on a single report.
JS console log outputs nothing, and all messages look as if the operation succeeded.
Add a new state, testing. Sometime your not able to reproduce the bug localy a you try some stuffs to fix it. Issues could be set in test mode.
Hello I found problem in you code and solved it:
commit a2dc21345da0684441d1050dbff685bab9b0d42b
Author: Michał Rowicki <[email protected]>
Date: Wed Nov 20 17:38:38 2013 +0100
Solve problem with parsing JSON, where keys were compared to UPPER_CASE values. This resulted in ie not loading the information about features.
diff --git a/includes/reporthelper.class.php b/includes/reporthelper.class.php
index e8bf76d..188efb3 100644
--- a/includes/reporthelper.class.php
+++ b/includes/reporthelper.class.php
@@ -81,12 +81,14 @@ class ReportHelper {
$values = array();
foreach ($json as $k=>$v) {
- $k = strtolower($k);
+^M
if (in_array($k, self::$mSerializedFields)) {
- $values[$k] = base64_encode(serialize($v));
+ $k = strtolower($k);^M
+ $values[$k] = base64_encode(serialize($v));^M
} else {
+ $k = strtolower($k);^M
// report_id is translate to report_key
if (strcmp($k, 'report_id')==0) {
$values['report_key'] = DBHelper::escapeString($v);
Needed now to populate the increments table instead of launching the update-to-5 script.
I have put MAB-LAB on server with uncommon SQL port. I think that it would be easier for everyone (or at least me?) to be able to easily set proper SQL port in config.php.
I think that changing line 389 at dbhelper.class.php is fair enough:
self::$dbo = new mysqli($mGlobalCfg['db.host'], $mGlobalCfg['db.user'], $mGlobalCfg['db.pwd'], $mGlobalCfg['db.name'], $mGlobalCfg['db.port']);
Then in config.php add:
'db.port'=>'3307,
Hi there,
seems to me that there are some problems with DB setup.
The install/db-install.sql creates version 4(?) tables but no functions or triggers.
The update-to-4/db-update.sql alter the tables, with errors being already updated, and add functions and triggers (with errors).
The update-to-5/db-update.sql alter the tables and drop functions and triggers.
Meanwhile the app, in DBHelper::deleteReports(), still call the missing function FctDeleteReport...
What's going on ?
Has anyone did a successful clean install from GitHub project ?
Maybe I didn't get something...
Regards
Sergio
Import sales reports from google play developer (updated each day) console and use it to generate usefull statistics.
Managing description and screenshots for google play in multiple language.
Add tagging management system.
For each 15 past days display :
Enhanced...
for example:
Report A - Stack Trace:
java.lang.NullPointerException
at xxx.removeDownloadLinks (DownloadLinkCollector.java : 141)
at xxx.removeDownloadsOutStatus (DownloadLinkCollector.java : 134)
at xxx$3.onClick (DownloadAddActivity.java : 172)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick (AlertController.java : 963)
at android.widget.AdapterView.performItemClick (AdapterView.java : 298)
at android.widget.AbsListView.performItemClick (AbsListView.java : 1128)
at android.widget.AbsListView$PerformClick.run (AbsListView.java : 2812)
at android.widget.AbsListView$1.run (AbsListView.java : 3571)
at android.os.Handler.handleCallback (Handler.java : 725)
at android.os.Handler.dispatchMessage (Handler.java : 92)
at android.os.Looper.loop (Looper.java : 153)
at android.app.ActivityThread.main (ActivityThread.java : 5299)
at java.lang.reflect.Method.invokeNativeNative Method
at java.lang.reflect.Method.invoke (Method.java : 511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 833)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 600)
at dalvik.system.NativeStart.mainNative Method
Report B - Stack Trace:
java.lang.NullPointerException
at xxx.getHoster (HosterController.java : 86)
at xxx.onHandleIntent (HosterUpload.java : 75)
at android.app.IntentService$ServiceHandler.handleMessage (IntentService.java : 59)
at android.os.Handler.dispatchMessage (Handler.java : 99)
at android.os.Looper.loop (Looper.java : 130)
at android.os.HandlerThread.run (HandlerThread.java : 60)
Current: Report A and B is the same issue but this is wrong.
Better is two different issues.
Report C - Stack Trace:
java.lang.RuntimeException
:Error receiving broadcast Intent { act=XXX.action.DOWNLOADER_MAP_CHANGE flg=0x10 } in xxx$2@42db49e8
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 778)
at android.os.Handler.handleCallback (Handler.java : 730)
at android.os.Handler.dispatchMessage (Handler.java : 92)
at android.os.Looper.loop (Looper.java : 137)
at android.app.ActivityThread.main (ActivityThread.java : 5414)
at java.lang.reflect.Method.invokeNativeNative Method
at java.lang.reflect.Method.invoke (Method.java : 525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 1187)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 1003)
at dalvik.system.NativeStart.mainNative Method
Caused by : java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next (AbstractList.java : 62)
at java.util.Collections.sort (Collections.java : 1895)
at xxx.sort (DownloadItem.java : 214)
at xxx.loadListView (DownloadOverall.java : 133)
at xxx.access$3 (DownloadOverall.java : 124)
at xxx$2.onReceive (DownloadOverall.java : 721)
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 768))
... 9 more
java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next (AbstractList.java : 62)
at java.util.Collections.sort (Collections.java : 1895)
at xxx.sort (DownloadItem.java : 214)
at xxx (DownloadOverall.java : 133)
at xxx$3 (DownloadOverall.java : 124)
at xxx$2.onReceive (DownloadOverall.java : 721)
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 768)
at android.os.Handler.handleCallback (Handler.java : 730)
at android.os.Handler.dispatchMessage (Handler.java : 92)
at android.os.Looper.loop (Looper.java : 137)
at android.app.ActivityThread.main (ActivityThread.java : 5414)
at java.lang.reflect.Method.invokeNativeNative Method
at java.lang.reflect.Method.invoke (Method.java : 525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 1187)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 1003)
at dalvik.system.NativeStart.mainNative Method
Report D - Stack Trace:
java.lang.RuntimeException
:Error receiving broadcast Intent { act=xxxx.action.DOWNLOADER_MAP_CHANGE flg=0x10 } in xxxx$2@40fd4b70
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 768)
at android.os.Handler.handleCallback (Handler.java : 725)
at android.os.Handler.dispatchMessage (Handler.java : 92)
at android.os.Looper.loop (Looper.java : 137)
at android.app.ActivityThread.main (ActivityThread.java : 5039)
at java.lang.reflect.Method.invokeNativeNative Method
at java.lang.reflect.Method.invoke (Method.java : 511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 793)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 560)
at dalvik.system.NativeStart.mainNative Method
Caused by : java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next (AbstractList.java : 62)
at java.util.Collections.sort (Collections.java : 1895)
at xxxort (DownloadItem.java : 214)
at xxx.loadListView (DownloadOverall.java : 133)
at xxx.access$3 (DownloadOverall.java : 124)
at xxx$2.onReceive (DownloadOverall.java : 721)
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 758))
... 9 more
java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next (AbstractList.java : 62)
at java.util.Collections.sort (Collections.java : 1895)
at XXX.sort (DownloadItem.java : 214)
at XXX.loadListView (DownloadOverall.java : 133)
at xxx.access$3 (DownloadOverall.java : 124)
at XXX$2.onReceive (DownloadOverall.java : 721)
at android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java : 758)
at android.os.Handler.handleCallback (Handler.java : 725)
at android.os.Handler.dispatchMessage (Handler.java : 92)
at android.os.Looper.loop (Looper.java : 137)
at android.app.ActivityThread.main (ActivityThread.java : 5039)
at java.lang.reflect.Method.invokeNativeNative Method
at java.lang.reflect.Method.invoke (Method.java : 511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java : 793)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 560)
at dalvik.system.NativeStart.mainNative Method
Current: Report C and D is not the same issue but this is wrong.
Better is one issue.
I changed the function "getReportIssueKey" to:
public static function getReportIssueKey(&$reportArr) {
//$arr = explode("\n", $reportArr[REPORT_STACK_TRACE]);
//return md5($reportArr[REPORT_VERSION_CODE].$reportArr[REPORT_VERSION_NAME].$reportArr[REPORT_PACKAGE_NAME].$arr[0]);
$stack = preg_replace('#^([^\t]+\n)#m', "", $reportArr[REPORT_STACK_TRACE]);
$stack = $stack != null ? preg_replace('#\t(at (com\.android|android|java)\..*?)\n#', "", $stack) : $reportArr[REPORT_STACK_TRACE];
$stack = $stack != null ? preg_replace('#\t\.\.\. \d+ more\n#', "", $stack) : $reportArr[REPORT_STACK_TRACE];
return md5($reportArr[REPORT_VERSION_CODE].$reportArr[REPORT_VERSION_NAME].$reportArr[REPORT_PACKAGE_NAME].$stack);
}
It works perfect.
I installed the new version today (thanks for the quick turnaround!). When I try to submit a report, I don't see the new report in the dashboard. In the mab-lab log, the last entry says
[27-07-13 08:35.49] INFO REPORT : New report requested !
[27-07-13 08:35.49] DEBUG CONFIG : :
[27-07-13 08:35.49] ERROR REPORT : Somebody try to access report script without a correct login/password !!!
I have tried both with and without MD5 obfuscation and have the same result.
One interesting thing I did notice was that when changing the setting for MD5 obfuscation, the mab-lab log doesn't seem to show a setting for recording the state of the setting:
[27-07-13 08:34.56] DEBUG Array
(
[a] => updateconfig
[in-report-tags] =>
[in-date-format] => Y-m-d H:i
[in-date-timezone] => America/Los_Angeles
[in-report-packagename-shrink] => 1
[report-basicauth] => 1
[report-basicauth-login] => XXhiddenXXX
[report-basicauth-password] => XXXhiddenXX
[in-report-sendmail] => 1
[in-report-sendmail-recipients] => [email protected]
[in-mail-from-addr] =>
[in-mail-from-name] => MAB-LAB
[in-db-host] => XXXhiddenXXX
[in-db-user] => XXXhiddenXXX
[in-db-pwd] => XXXhiddenXXX
[in-db-name] => XXXhiddenXXX
[in-tbl-prefix] => mabl_
)
I would have expected to see a setting in there for MD5, but I suppose you may have a way of doing this without recording the setting there, or maybe that setting just isn't being echoed to the log. Just giving you a possible clue.
The bottom line is I cannot submit a report and I do not know how to fix it.
Called from controller.php
For each issue set the in which release the issue is resolved.
Hello,
Can you add the tab "Environments" in "/pages/report_details_dialog.php"?
for example after the tab "Settings":
<div class="tab-pane" id="report-environments" >
<dt>Environments</dt>
<dd><br/><?php ReportHelper::displayObjectValuesToHTMLArray($r->environment); ?></dd>
</div>
There is a minor error in the installation tutorial (which is outside of github). In the HTTP basic authentication. example the formUri is wrong. It is formUri = "http://your-web-server/path/to/mab-lab/report.php"
but it should be formUri = "http://your-web-server/path/to/mab-lab/report/report.php"
Thanks for this great ACRA backend.
The app will probably be released on google play.
Noticed this bug in the index page. Though it loads correctly first as a part of the index page, for some reason it tries to get it again and fails. I confirmed this using the developer tools in Chrome.
Same as sales reports but for the monthly report. We will use it to generate revenue statistics.
Hi:
First of all, thanks for creating this amazing tool, I think it's one of the most advanced ACRA reporters.
I think that the "Need to be fixed" issue count is wrong, because it also includes the already resolved ones. Maybe I understood the concept in a wrong way, but I think that once an issue is marked as resolved, it doesn't need to be fixed.
I fixed it on my instance by editing pages/issues_states_box.php, replacing:
ISSUE_STATE.'<>'.ISSUE_STATE_ARCHIVED
with:
ISSUE_STATE.'<>'.ISSUE_STATE_ARCHIVED.' AND '.ISSUE_STATE.'<>'.ISSUE_STATE_CLOSED
Thanks for your time!
I have MAB-LAB up and running on my hosted server. Well done. The instructions were easy to follow.
As for my android app, I included the settings as suggested in the instructions:
Configure your app
MAB-LAB support GET, POST and PUT method. We chose to use the third and then the most tested.
@ReportsCrashes (
formKey = "", // This is required for backward compatibility but not used
formUri = "http://your-web-server/path/to/mab-lab/report.php",
httpMethod = org.acra.sender.HttpSender.Method.PUT,
reportType = org.acra.sender.HttpSender.Type.JSON,
...
But I was surprised to see no settings for a reporter username and password. Did I miss a step? What about the formUriBasicAuthLogin & formUriBasicAuthPassword settings?
The issue list view is not really clear. Ideas :
Any ideas is welcome !
Hi there,
I'm facing an error so big that probably I'm doing something wrong.
I'm using Acra 4.5 to report crashes, with default configuration:
@ReportsCrashes(
formKey = "",
formUri = "http://..../report/report.php",
httpMethod = org.acra.sender.HttpSender.Method.PUT,
reportType = org.acra.sender.HttpSender.Type.JSON,
formUriBasicAuthLogin = "....",
formUriBasicAuthPassword = "....."
)
but when report get inserted to DB, I have this error:
Incorrect datetime value: '2013-11-18T17:04:17.000+01:00' for column 'user_app_start_date' at row 1
From what I read, all Acra dates are RFC 3339 formatted and MySql cannot handle this format.
Looking in the mablab.log file I get these values:
[user_crash_date] => 2013-11-18 17:04:27
[user_app_start_date] => 2013-11-18T17:04:17.000+01:00
user_crash_date seems somehow converted, the other one no...
My question is: what I'm missing?
Hope you can help
Best regards
Sergio
Hi... I have this issue that I can't see any reports in the database. They do show in the log and the log says that it can successfully insert them into the database... What can I do?
Edit:
Inserting report data failed ! #1118 : Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Edit: fixed by switching to MyISAM
INSERT INTO mabl_users
(user_name
, user_password
, user_email
) VALUES ('admin', MD5('password'), '');
?
Notice: Undefined index: report.basicauth.method in \MAB-LAB-master\includes\confighelper.class.php on line 67
"report.basicauth.method" is not set in config.php
Allow grouping same reports to on issue.
Hi, how can I solve this problem? I have completed the installation script, all the tables were created successfully, but on the dashboard, I have this notification instead of graphics evolution
Warning: Division by zero in /pages/home.php on line 69
Invalid argument supplied for foreach() in /pages/home.php on line 59
Line: 58
$max = 0; $sum = 0;
foreach ($res as $row) {
$count =& $row[0];
if ($count>$max)
$max = $count;
$sum += $count;
}
?>
<li>Reports per installation</li>
<li>Avg <?php echo round($sum/sizeOf($res), 2); ?> / Max <?php echo $max; ?></li>
some fix:
$count = sizeOf($res);
$avg = 0;
$max = 0; $sum = 0;
if($count > 0)
{
$avg = round($sum/sizeOf($res), 2);
foreach ($res as $row) {
$count =& $row[0];
if ($count>$max)
$max = $count;
$sum += $count;
}
}
?>
<li>Reports per installation</li>
<li>Avg <?php echo $avg; ?> / Max <?php echo $max; ?></li>
The idea is having mabl installed in a private network and in a public area the report.php which store the reports into DB. Then mabl simply retreive the new reports if needed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.