Monthly Archives: October 2016

Weekly phpMyAdmin contributions 2016 – Week9

Last week was focused on bug-fixing in main repository and refactoring and adding some tests to the SQL parser. The parser library has now has reached unit test coverage of 99.75% as reported by the tool. The rest of week in which I had thought I would find less time, in fact turned out to be quite normal and I made and pushed fixes for some newer issues as well
as some issues which had been opened since a few months. I also reviewed a pull request adding a grey color for NULL cells in the result set to make it more recognizable.

Some issues in the SQL parser, for example, an issue with incorrect parsing of various types of JOINs and improper lexing of begin labels in the stored procedure statements were also fixed during the week’s bug-fixing.

Next week, I might take a look at the security issues along with the regular bug-fixing and taking up some refactoring work if the time permits. Since, I would be travelling back to campus on Monday and Tuesday, my activity might be slightly less over these two days, but I hope I would be able to make up for it during the remaining part of the week.

Handled issues:
* #12665 Cannot add a foreign key – fields not listed
* #12195 Row_format = fixed not visible
* #12228 SQL parser indicates error for Event definitions using BEGIN..END
* #12344 inapt error symbol when labeling a loop in a routine
* #12661 Error inserting into pma__history after timeout
* #12610 Export of tables with Timestamp/Datetime/Time columns defined with ON UPDATE clause with precision fails
* #12622 Javascript error from Designer
* #12664 Create Bookmark broken
* #12637 Use of a Timestamp column with a value greater than 23:00:00 is not allowed by PMA 4.6.4
* #12543 NULL results in dataset are colored grey
* #12662 Null results in dataset now colored grey (#12543)
* #12454 Query history not updated in console until page refresh
* #12365 Error on displaying total number of records when executing a select query on a table which contains large number of records
* #12656 Server selection not working
* #64 Error #57 fixed.
* #57 inapt error symbol when labeling a loop in a routine
* #93 “Natural” not recognized


Weekly phpMyAdmin contributions 2016 – Week8

In the last week, I could contribute slightly less as I spent some time working on the python library pcap_to_ditg (related to my research project at the university and unrelated to PMA as such). Friday and Saturday also saw slightly less activity as I was travelling home for the Diwali festivities upcoming in the next week.

While using the debugging feature of phpMyAdmin in reproducing some other issue, I managed to discover some issues with the debugging feature of phpMyAdmin as it was throwing a JS error while trying to look at the traces and arguments of the functions which were called without any arguments. I reported it and fixed the issue at #12639.

Since version 10.1.2, MariaDB has introduced password validation plugins (for ex. simple_password_check) for validating if the password provided while creating a new user satisfies the  minimum requirements or not. phpMyAdmin tried to create the new user using CREATE USER … IDENTIFIED VIA .. USING … where we used the hashed password which the validating plugins reject as they cannot check for the complexity from the hash. So, we now check if any of these plugins are active in MariaDB and provide a cleartext password in such cases.

I worked on a few JS issues which we have received regarding our TIME, TIMESTAMP, DATETIME, DATE fields’ input in phpMyAdmin’s Table Insert page and the Grid edit feature on Browse page, but the work on these is still on-going and they should be fixed in coming week(s).

Next week might have a similar focus on bug-fixing, some issue assessment of remaining unattended issues and some refactoring. I might find slightly less time next week due to festivities, but having spent slightly more than scheduled time in the first two weeks of this month, it should not be much of a problem overall.

Handled issues:
* #12650 Error when rename table with whitespace at start or end
* #12649 Bug in changing the datatype via change action
* #12533 Incorrect selected record statement counts for complex queris using group by and derived tables
* #12472 Setup issues
* #12366 Cannot create a new user (MariaDB)
* #12639 ‘Show trace’ in Console generates JS error for functions in query’s trace called without any arguments

pcap_to_ditg Python library released

Yesterday, I packaged and released my first python library pcap_to_ditg‘s version 0.1.1.

The library can be used to convert the Packet capture files generated from Wireshark, TCPDump etc. into DITG script files. This would make it possible to read a trace file generated from any port of any topology and replay the traffic exactly onto your custom topology. I hope this would go on and help the network researchers while testing their prototypes in real traffic scenarios.

Since last semester, I had been working with Dr. K. Haribabu, who is an Assistant professor at BITS Pilani currently working on the research areas like Software Defined Networking (SDN), Hybrid and cost-effective SDN deployment, P2P networks etc. I co-authored a paper with him which was presented in July, 2016 at the International Network Conference 2016, Frankfurt, Germany. For the performance evaluation, we were in need of replicating real Network traffic and check how our prototype delivers and scales.

I researched and tried out various traffic generators mentioned in this list, but no one was fulfilling our requirements exactly. Moreover, even after one gets the real network traces (for ex, we used one here), since there is no prior knowledge of the topology of the network of the trace, it’s not very simple to replicate it as it is. So, I manually mapped the hosts and IPs in the traces to the hosts in our test topology and we decided that we would use the DITG script files to replay the traffic. Once the mapping is complete, the library would generate the script files for all our hosts, which can then be run as it is.

The library installation and usage details are available in README on Package Index page or on my Github (where mostly its future development should go on).

Share it with your friends if you know someone who might need to use it. Contributions in Pull Requests, Feature Requests, Bug reports etc. are always welcome (through Github tracker).